我正在使用proxy.web来转发客户端请求。 当目标服务器启动时,我的代码按预期工作。 目标服务器关闭时,ECONNREFUSED错误将被捕获并打印到console.log。我想将该错误发送回客户端,并尝试使用此处提供的示例。不幸的是,错误响应没有到达客户端(尝试了chrome和firefox)。请在下面找到代码。为什么没有将响应发送给客户?
{{1}}
答案 0 :(得分:2)
这是一个好方法:
return res.status(500).send({
error: true,
message: 'your-error-message'
});
您的代码被重写:
proxy.web(req, res, {
target: config.recognitionServer.url
}, function (e) {
console.log(e.message);
return res.status(500).send({
error: true,
message: e.message
});
});
答案 1 :(得分:0)
问题在客户端解决了:) 客户端代码是使用XMLHttpRequest的JS(在FF和Chrome上测试)。错误响应到达“onload”事件处理程序,而不是“onerror”。 “onload”处理函数需要检查响应状态。如果出现错误状态(500),请继续使用错误处理程序。