2014-10-01 60 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

相關問題