我建立了一個API(使用Expressjs V4),而且通常我已經經歷了路線中的錯誤,而不是使用中間件。例如:Expressjs - 錯誤處理中間件
router.use('/', function(req, res, next) {
...
if (err)
return res.status(500).send({type: "serverError", message: "Something has gone wrong on our end."});
}
我現在認識到中間件是「走的路」。我在這裏看到了Expressjs站點上相當有限的文檔:http://expressjs.com/guide/error-handling.html但仍不確定一些事情。
我已經添加在server.js
:
function errorHandler(err, req, res, next) {
}
但我應該如何處理不同類型的錯誤(400404500等)?
我發現自己寫的每個發生錯誤時3行代碼:
//A route
var err = new Error();
err.status = 404;
return next(err);
,我可以使用訪問狀態:
function errorHandler(err, req, res, next) {
console.log(err.status);
if(err.status == "400")
//do something
else
//etc etc
}
肯定有比這更簡單的方法?我錯過了什麼嗎?
可以忽略'this.stack'一部分,如果你不需要的堆棧跟蹤,但它的超有用有時 – tkone 2014-12-03 14:31:37