【发布时间】:2019-03-20 22:03:14
【问题描述】:
我正在使用 node.js 和 express 框架构建 RESTful API,并且我正在寻找一种构建单个错误处理中间件的方法。我目前的做法是:
router.get('/some-resource', (req, res, next) => {
// some logic that resolves to BAD REQUEST
const error = new Error('Bad request example message')
error.code = 400; // should I do this?
next(error);
});
我的错误处理中间件如下:
const env = process.env.NODE_ENV;
const ErrorHandler = (error, req, res, next) => {
const {code, stack} = error;
if (env === 'production')
return res.sendStatus(code || 500);
res.status(code).send(stack);
};
module.exports = ErrorHandler;
我应该只将 HTTP 错误代码分配给 Error 对象的实例,还是认为这是一种不好的做法?是否应该在路由级别指定响应代码?有没有更好的方法来做到这一点?
【问题讨论】:
标签: javascript node.js rest express