当我在开发服务器上出现错误时,Express 会发送回溯作为响应。
然而,这对于生产来说并不好。我不想让任何人看到我的引用。
我怎样才能关闭它?
注意:我使用 EJS 作为模板引擎 - 这可能是原因,而不是表达。例如,当我在 ejs 模板中有一个未定义的变量时,ejs 会渲染回溯并将其在白页上显示给用户。
最新版本的 Express 使用智能默认错误处理程序。
In development
模式下,它将完整的堆栈跟踪发送回浏览器,而在production
只发送模式500 Internal Server Error
.
要利用它,您应该设置正确的NODE_ENV
在运行您的应用程序之前。
例如,要在生产模式下运行您的应用程序:
NODE_ENV=production node application.js
但如果您不喜欢这种默认行为,您可以定义自己的错误处理程序:
app.use(function(err, req, res, next){
console.error(err);
res.status(500);
res.render('error');
});
请注意,错误处理程序必须是链中的最后一个中间件,因此它应该定义在您的application.js
file.
如果您需要更多信息,请参阅:
- Express官方文档
- 有关 Express 中的错误处理的博客文章
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)