
- ExpressJS 教程
- ExpressJS - 主頁
- ExpressJS - 概覽
- ExpressJS - 環境
- ExpressJS - Hello World
- ExpressJS - 路由
- ExpressJS - HTTP 方法
- ExpressJS - URL 構建
- ExpressJS - 中介軟體
- ExpressJS - 模板
- ExpressJS - 靜態檔案
- ExpressJS - 表單資料
- ExpressJS - 資料庫
- ExpressJS - Cookie
- ExpressJS - 會話
- ExpressJS - 身份驗證
- ExpressJS - RESTful API
- ExpressJS - 腳手架
- ExpressJS - 錯誤處理
- ExpressJS - 除錯
- ExpressJS - 最佳實踐
- ExpressJS - 資源
- ExpressJS 有用資源
- ExpressJS - 快速指南
- ExpressJS - 有用資源
- ExpressJS - 討論
ExpressJS - 錯誤處理
Express 中的錯誤處理使用中介軟體完成。但是,此中介軟體具有特殊屬性。錯誤處理中介軟體的定義方式與其他中介軟體函式相同,但錯誤處理函式必須有四個引數,而不是三個——err、req、res、next。例如,要在任何錯誤中傳送響應,我們可以使用 −
app.use(function(err, req, res, next) { console.error(err.stack); res.status(500).send('Something broke!'); });
到目前為止,我們一直在路由中處理錯誤。錯誤處理中介軟體允許我們分離我們的錯誤邏輯並相應地傳送響應。我們在中介軟體中討論的 next() 方法將我們帶到下一個中介軟體/路由處理程式。
對於錯誤處理,我們有 next(err) 函式。呼叫此函式會跳過所有中介軟體,並匹配我們到該路由的下一個錯誤處理程式。我們透過一個示例來理解這一點。
var express = require('express'); var app = express(); app.get('/', function(req, res){ //Create an error and pass it to the next function var err = new Error("Something went wrong"); next(err); }); /* * other route handlers and middleware here * .... */ //An error handling middleware app.use(function(err, req, res, next) { res.status(500); res.send("Oops, something went wrong.") }); app.listen(3000);
此錯誤處理中介軟體可以策略性地放置在路由之後,或包含條件來檢測錯誤型別並相應地向客戶端響應。上面的程式將顯示以下輸出。

廣告