2014-10-01 84 views
0

我有一个HTTP的功能像往常一样请求的响应:发送的NodeJS XHR响应不可用客户端

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 }); 
     } 
    }); 
}); 

我张贴的是beeing写入到文件系统中的文件。当文件被写入时,我发回一个响应给客户端。现在客户端失去了与互联网的连接,服务器无法发送响应,引发错误并被杀死。

错误:

Error: Request aborted 
    at IncomingMessage.onReqAborted .... 
.... 
http.js:689 
    throw new Error('Can\'t set headers after they are sent.'); 

我怎么能捕获此异常?

回答

1

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

我也应该指出你的路由参数是翻转的,应该是(req, res),而不是(res, req)

+0

对,我发现也res.on('断开',功能...工作,谢谢。 – marcel 2014-10-01 13:54:30