Node.js http-proxy:错误响应未发送到客户端

时间:2015-07-07 05:57:00

标签: node.js http-proxy

我正在使用proxy.web来转发客户端请求。 当目标服务器启动时,我的代码按预期工作。 目标服务器关闭时,ECONNREFUSED错误将被捕获并打印到console.log。我想将该错误发送回客户端,并尝试使用此处提供的示例。不幸的是,错误响应没有到达客户端(尝试了chrome和firefox)。请在下面找到代码。为什么没有将响应发送给客户?

{{1}}

2 个答案:

答案 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),请继续使用错误处理程序。