2015-09-10 5 views
1

В приложении Sails.js я развиваюсь, я случайно получил ошибку ECONNREFUSED. Я попытался проверить кусок кода, который вызывает ошибку, но не повезло. Я уже включил журналы в подробном (переменная NODE_DEBUG среда установлена ​​в «сети»), и я получил это:Случайное получение ошибки ECONNREFUSED

NET 6070: onread 11 
NET 6070: got data 
NET 6070: _read 
NET 6070: _read 
NET 6070: _read wait for connection 
NET 6070: pipe false undefined 
NET 6070: connect: find host 127.0.0.1 
NET 6070: connect: dns options [object Object] 
NET 6070: onread 8680 
NET 6070: got data 
NET 6070: _read 
NET 6070: afterConnect 
NET 6070: destroy 
NET 6070: close 
NET 6070: close handle 
verbose: Lowering sails... 
verbose: Sent kill signal to child process (6080)... 
verbose: Shutting down HTTP server... 
NET 6070: SERVER _emitCloseIfDrained 
NET 6070: SERVER handle? false connections? 11 
events.js:85 
     throw er; // Unhandled 'error' event 
     ^
Error: connect ECONNREFUSED 
    at exports._errnoException (util.js:746:11) 
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1010:19) 

Я действительно не знаю, что здесь не так ...

UPDATE

Хотя я отлаживаю инспектор узлов, ошибка исчезает. Странный!

ответ

0

Я понял, что случилось. Это был запрос https без обратного вызова ошибки.

Пример:

var request = require('https').request(requestOptions, function (response) { 
    //logic here 
}); 

request.on('error', function (err) { 
    //error handling here 
}); 
request.end(); 

я пропустил обратный вызов 'ошибки'. ECONNREFUSED был вызван запросом, который в какой-то момент не был успешно завершен и выбросил эту ошибку.

2

В принципе, в соответствии с журналом, который вы показываете, events.js:85 этот файл выдает ошибку на этой строке (я знаю, ее очевидность я просто описываю все). Теперь без этого кода невозможно будет отладить, почему возникает ошибка. Но я считаю, что есть вызов метода/функции в этой строке, который бросает указанную ошибку, и он не завернут в блок try/catch. Мое предложение состоит в том, чтобы обернуть его и зарегистрировать сообщение об ошибке, чтобы проверить, что происходит.

Я занимался некоторыми исследованиями и наткнулся на многие ошибки, когда все указывали на events.js:85. Кажется, что-то связано с портом, который вы используете для запуска вашего приложения. Большинство решений указывают, что вам следует либо выбрать случайный порт, либо изменить порт, который вы используете в своем приложении.

Источник here.

+0

events.js это файл из ядра Sails.js, я думаю. Это не код, написанный мной. –

+1

Кажется, это файл из nodejs. Я обновил свой ответ ссылкой, которая может помочь вам исправить вашу проблему. – taxicala

+0

Спасибо, что пытались мне помочь. Я работаю на порту 2000 в Linux-системе, это означает, что мне не нужны никакие права root ([см. Это] (http://unix.stackexchange.com/questions/16564/why-are-the-first -1024-ports-limited-to-the-root-user-only)). Странно то, что мое приложение неожиданно заканчивается после некоторого случайного числа успешных запросов. –

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

  • Нет связанных вопросов^_^