NodeJS向不可用的客户端发送xhr响应

时间:2014-10-01 11:29:44

标签: node.js

我有一个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.');

如何捕获此异常?

1 个答案:

答案 0 :(得分:1)

要捕获这些错误,您可以res.on('error', function(err) {})req.socket.on('error', function(err) {})来捕获较低级别的错误,但我认为较低级别的错误确实会冒泡到请求/响应对象。

我还应该指出您的路线参数是翻转的,应该是(req, res),而不是(res, req)