我正在从快递后端向外部服务发出http请求。
const options = {
hostname: beHost,
port: bePort,
path: path,
method: "GET"
}
var msg = http.request(options, function (error, response, body) {
response.on('data', (d) => {
process.stdout.write(d)
res.send(d).status(response.statusCode)
})
response.on('error', (d) => {
process.stdout.write(d)
res.send(d).status(response.statusCode)
})
})
msg.on('socket', function (socket) {
socket.on("error", function (err) {
console.log(err);
res.send(err).status(408);
msg.abort(err);
});
socket.setTimeout(2000, function () {
var e = new Error('Timeout connecting to ' + beHost);
e.name = 'Timeout';
console.log(e);
res.send(e).status(408);
msg.abort();
});
});
msg.end();
如果可以使用外部服务,那么一切都很好,但是如果我无法使用该服务,它将给我
Error: connect ECONNREFUSED X.X.X.X:3000
我该如何处理该错误并将503 http错误发送给客户端?