随机获取ECONNREFUSED错误

在我正在开发的Sails.js应用程序中,我随机得到了ECONNREFUSED错误。 我试着去检查那个抛出错误的代码片段,但没有运气。 我已经打开日志到详细(NODE_DEBUG环境variables设置为'净'),我得到这个:

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

当我用节点检查器debugging时,错误消失了。 奇怪!

基本上,根据你所显示的日志, events.js:85该文件正在抛出一个错误(我知道,它显而易见,我只是描述了一切)。 现在,如果没有这个代码,将不可能debugging为什么错误被抛出。 但是,我相信有一个方法/函数调用在该行抛出所述错误,并没有包裹在一个try/catch块,我的build议是包装它并logging错误信息,以检查发生了什么。

我一直在做一些研究,偶然发现了许多指向events.js:85 。 这似乎是与您用来运行您的应用程序的端口相关的东西。 大多数解决scheme指出,您应该select一个随机端口或更改您在应用程序中使用的端口。

来源于此 。

我找出了什么是错的。 这是一个没有错误callback的https请求。

例:

 var request = require('https').request(requestOptions, function (response) { //logic here }); request.on('error', function (err) { //error handling here }); request.end(); 

我错过了“错误”callback。 ECONNREFUSED被请求抛出,在某些时候,没有成功完成,并抛出了这个错误。