如果某个底层组件抛出错误,我该如何通知express.js堆栈呢?我正在使用基础数据访问框架,偶尔会抛出特定错误(例如,在数据库中找不到记录时)。
express.js是否提供了直接跳转到500错误处理程序并将响应重定向到相应页面的方法?不幸的是,我没有看到使用标准express.js方式的直接方式(使用next
中间件处理程序),除非我可以使用try ... catch到处,这也是一点开销
答案 0 :(得分:0)
通常您不会重定向到500页。你做的是让异常传播,如果抛出异常,node.js将为你做500.
我遵循一些相关规则。也许你会觉得它们很有用:
res.send('Error', 500);
答案 1 :(得分:0)
那些仍在寻找像我这样的答案的人:
1-使用express default errorHandler中间件
app.use(express.errorHandler());
或
2-提供您自己的错误处理中间件:
app.use(function (error, req, res, next) {
res.status(500);
res.render("500.jade", {});
});
理想情况下,您需要使用DEV
上的第一个选项和PROD
上的第二个选项
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
app.use((function (error, req, res, next) {
res.status(500);
res.render("500.jade", {});
});
注意:错误处理程序应策略性地放置在下面 app.router