Node.js:如何在close监听器中打印更多错误信息?
解决HTTP请求close事件仅输出true的问题
问题核心:
close事件的回调参数had_error只是布尔值,仅能标识连接关闭时是否出错,无法提供具体错误详情。具体实现方案:
- 先监听HTTP请求的
error事件,捕获并保存具体错误信息:// 给请求对象绑定error事件,存储错误信息 request.on('error', function(err) { request._reqError = err; }); - 修改
close事件的回调逻辑,读取已保存的错误信息并打印:request.connection.addListener('close', function(had_error) { if (had_error && request._reqError) { console.log('连接关闭时的错误详情:', request._reqError); console.log('错误消息:', request._reqError.message); console.log('错误堆栈:', request._reqError.stack); } else { console.log(had_error ? '连接异常关闭但未捕获到具体错误' : '连接正常关闭'); } });
- 先监听HTTP请求的
逻辑说明:HTTP请求发生错误时,会先触发
error事件,之后才会触发close事件。通过在error事件中缓存错误对象,就能在close事件中获取到完整的错误信息,而非仅布尔值。
内容的提问来源于stack exchange,提问作者user180574
相关产品推荐
相关产品推荐

