gpt4 book ai didi

javascript - 请求管道的错误处理

转载 作者:IT老高 更新时间:2023-10-28 22:04:23 25 4
gpt4 key购买 nike

我在nodejs上写了简单的代理,看起来像

var request = require( 'request' );
app.all( '/proxy/*', function( req, res ){
req.pipe( request({
url: config.backendUrl + req.params[0],
qs: req.query,
method: req.method
})).pipe( res );
});

如果远程主机可用,它可以正常工作,但如果远程主机不可用,整个 Node 服务器会因未处理的异常而崩溃

stream.js:94                                               
throw er; // Unhandled stream error in pipe.
^
Error: connect ECONNREFUSED
at errnoException (net.js:901:11)
at Object.afterConnect [as oncomplete] (net.js:892:19)

如何处理此类错误?

最佳答案

查看文档 (https://github.com/mikeal/request),您应该能够按照以下方式做一些事情:

您可以根据请求使用可选的回调参数,例如:

app.all( '/proxy/*', function( req, res ){
req.pipe( request({
url: config.backendUrl + req.params[0],
qs: req.query,
method: req.method
}, function(error, response, body){
if (error.code === 'ECONNREFUSED'){
console.error('Refused connection');
} else {
throw error;
}
})).pipe( res );
});

或者,您可以捕获未捕获的异常,如下所示:

process.on('uncaughtException', function(err){
console.error('uncaughtException: ' + err.message);
console.error(err.stack);
process.exit(1); // exit with error
});

关于javascript - 请求管道的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20196223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com