Koa 框架 的錯誤處理

默認狀況下Koa會將全部錯誤信息輸出到 stderr,除非 NODE_ENV 是 "test"。爲了實現自定義錯誤處理邏輯(好比 centralized logging),您能夠添加 "error" 事件監聽器。app

app.on('error', function(err){
  log.error('server error', err);
});

若是錯誤發生在 請求/響應 環節,而且其不可以響應客戶端時,Contenxt 實例也會被傳遞到 error 事件監聽器的回調函數裏。socket

app.on('error', function(err, ctx){
  log.error('server error', err, ctx);
});

當發生錯誤但仍可以響應客戶端時(好比沒有數據寫到socket中),Koa會返回一個500錯誤(Internal Server Error)。函數

不管哪一種狀況,Koa都會生成一個應用級別的錯誤信息,以便實現日誌記錄等目的。spa

500 錯誤

若是代碼運行過程當中發生錯誤,咱們須要把錯誤信息返回給用戶。HTTP 協定約定這時要返回500狀態碼。Koa 提供了ctx.throw()方法,用來拋出錯誤,ctx.throw(500)就是拋出500錯誤。日誌

看下面的 500error.js 文件中的代碼:code

https://www.xttblog.com/?p=1751server

相關文章
相關標籤/搜索