gpt4 book ai didi

node.js - 如何为生产关闭 Node.js Express(ejs 模板引擎)错误?

转载 作者:搜寻专家 更新时间:2023-10-31 22:27:24 25 4
gpt4 key购买 nike

当我在开发服务器上出现错误时,Express 会发送回溯作为响应。

但是,这不利于生产。我不想让任何人看到我的引用。

我怎样才能关闭它?

注意:我使用 EJS 作为模板引擎 - 这可能是原因,而不是明示。例如,当我在 ejs 模板中有一个 undefined variable 时,ejs 会呈现回溯并在白页上将其显示给用户。

最佳答案

最新版本的 Express 使用智能默认错误处理程序。

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 文件的底部。


如果您需要更多信息,请参阅:

关于node.js - 如何为生产关闭 Node.js Express(ejs 模板引擎)错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25354022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com