【发布时间】:2015-02-01 03:29:34
【问题描述】:
我正在构建一个 API(使用 Expressjs v4),通常我处理的是路由中的错误,而不是使用中间件。例如:
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) {
}
但我应该如何处理不同类型的错误(400,404,500 等)?
我发现每次发生错误时自己都要编写 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
}
肯定有比这更简单的方法吗?我错过了什么吗?
【问题讨论】:
标签: node.js express error-handling