我有一个http函数,可以照常响应请求:
app.post('/file', function(res, req){
write(req.body.file, function(err, id){
if(!err)
res.send({id:id});
else
{
res.status(500);
res.send({ error: 500 });
}
});
});
我发布了一个写入文件系统的文件。写入文件后,我将响应发送回客户端。现在客户端失去了与互联网的连接,服务器无法发送响应,抛出错误并被杀死。
错误:
Error: Request aborted
at IncomingMessage.onReqAborted ....
....
http.js:689
throw new Error('Can\'t set headers after they are sent.');
如何捕获此异常?
答案 0 :(得分:1)
要捕获这些错误,您可以res.on('error', function(err) {})
或req.socket.on('error', function(err) {})
来捕获较低级别的错误,但我认为较低级别的错误确实会冒泡到请求/响应对象。
我还应该指出您的路线参数是翻转的,应该是(req, res)
,而不是(res, req)
。