请求管道上的错误处理

16 浏览
0 Comments

请求管道上的错误处理

我在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) 

我该如何处理这样的错误?

0