当远程站点脱机时,我在我的消费客户端(带有http
模块的Node.js v0.12.0)中收到此错误:
Uncaught exception: connect ECONNREFUSED
Error: connect ECONNREFUSED
at exports._errnoException (util.js:746:11)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:983:19)
我目前使用的代码如下所示:
var req = http.request(options, function (res) {
res.on('socket', function (socket) {
socket.setKeepAlive(true, 0);
socket.setNoDelay(true);
});
res.on('end', function () {
log.debug('Success');
}).on('error', function () {
log.error('Response parsing failed');
});
}).on('error', function () {
log.error('HTTP request failed');
});
req.write(packet);
req.end();
"错误" ECONNREFUSED
发生时,事件永远不会被触发,我已尝试使用" clientError"事件,但这也没有被解雇。
如何捕获此错误?
答案 0 :(得分:0)
摘自:https://stackoverflow.com/a/4328705/4478897
注意:这篇文章有点陈旧
下一个例子是http.createClient
,但我认为它可能是相同的
不幸的是,目前没有办法直接捕获这些异常,因为所有的东西都是在后台异步发生的。
你所能做的就是自己捕捉uncaughtException:
process.on('uncaughtException', function (err) {
console.log(err);
});
也许这有助于你!
更多信息:https://stackoverflow.com/a/19793797/4478897
<强>更新强>
您是否尝试将log.error()
更改为console.error()
???