2015-02-09 2 views
0

Я использую Hapi.js в качестве основы для разработки нашего API, и я получаю следующую ошибку в очень редком сценарии.Hapi js throwing Ошибка: уже закрыта

2015-02-08T12:32:38.073Z - verbose: err.stack > Error: Already closed 
    at Object.exports.create (/var/www/ragchewAppServerSrc/ragchew_prod/ragchews/node_modules/hapi/node_modules/boom/lib/index.js:21:17) 
    at Object.exports.internal (/var/www/ragchewAppServerSrc/ragchew_prod/ragchews/node_modules/hapi/node_modules/boom/lib/index.js:252:92) 
    at /var/www/ragchewAppServerSrc/ragchew_prod/ragchews/node_modules/hapi/lib/request.js:297:34 
    at iterate (/var/www/ragchewAppServerSrc/ragchew_prod/ragchews/node_modules/hapi/node_modules/items/lib/index.js:35:13) 
    at done (/var/www/ragchewAppServerSrc/ragchew_prod/ragchews/node_modules/hapi/node_modules/items/lib/index.js:27:25) 
    at validate (/var/www/ragchewAppServerSrc/ragchew_prod/ragchews/node_modules/hapi/lib/auth.js:283:20) 
    at finish (/var/www/ragchewAppServerSrc/ragchew_prod/ragchews/node_modules/hapi/lib/protect.js:45:21) 
    at wrapped (/var/www/ragchewAppServerSrc/ragchew_prod/ragchews/node_modules/hapi/node_modules/hoek/lib/index.js:798:20) 
    at root (/var/www/ragchewAppServerSrc/ragchew_prod/ragchews/node_modules/hapi/lib/auth.js:198:50) 
    at /var/www/ragchewAppServerSrc/ragchew_prod/ragchews/src/middlewares/auth/ragchew_auth_strategy.js:75:28 
2015-02-08T12:32:38.073Z - verbose: err > {"isBoom":true,"output":{"statusCode":500,"payload":{"statusCode":500,"error":"Internal Server 

Невозможно воспроизвести это в нашей тестовой среде, и я не понимаю причину этой ошибки.

Было бы очень полезно, если кто-то выделит, почему/когда эта ошибка генерируется каркасом.

В нашем коде эта ошибка возникает, когда мы пытаемся отправить ответ из «Плагина аутентификации». Мы используем базовую схему аутентификации.

Пример фрагмента, где происходит вопрос:

exports.register = function (plugin, options, next) { 
    plugin.auth.scheme('basic', function (server, options) { 
     var settings = options; 
     // some code here 
     var scheme = { 
      authenticate: function (request, reply) { 
       // some code here 
       // assign access token value to token here. 

       settings.validateFunc.call(request, token, function (err, isValid, credentials) { 
        // handle error here. 
        return reply(null, { credentials: credentials }); // error occurs on this line 
       }); 
      } 
     }; 
     return scheme; 
    }); 

    next(); 
}; 
+0

Эта часть кода выглядит хорошо. Я думаю, что проблема будет в другом месте. Можете ли вы добавить и некоторые «части здесь»? –

+0

На самом деле, есть много кода, поэтому я больше заинтересован бы в том, чтобы знать, когда эта ошибка будет выброшена, чтобы я сам решил проблему. – guptakvgaurav

+0

какой hapi версия вы используете? – ubaltaci

ответ

Смежные вопросы