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

2023-11-23

当我在开发服务器上出现错误时,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(使用前将#替换为@)

如何关闭生产中的 Node.js Express(ejs 模板引擎)错误? 的相关文章

随机推荐

  • ZF2中同一模块下的多个命名空间

    我在同一模块下配置多个命名空间 类时遇到问题 例如 我有一个名为 Account 的模块 其中我想包含所有与帐户相关的类 公司 accounts 用户 users 外部 api api 等 模块结构看起来像这样 Account Module
  • Base64 图像不显示在 RDLC 报告的渲染 PDF 上

    我正在尝试使用参数 CustomerSign 在 RDLC 报告中 我正在从报告中渲染 PDF 文件 并且看到 PDF 文件 我已配置图像属性如下 选择图像源 Database 使用该字段 Convert FromBase64String
  • 为什么 Objects.hash() 对于相同的输入返回不同的值?

    我运行了以下脚本 java 它给了我奇怪的结果 有谁可以帮忙解释一下吗 import java util Objects import org apache log4j Logger public class CacheTester pri
  • -D MACRO 和 #define MACRO 的优先级

    如果我有一个C文件 foo c 虽然我已经给出了 DMACRO 1作为编译的命令行选项 但是 如果在头文件中我也有 define MACRO 2 其中哪一个会优先 我正在假设您正在做什么 但是如果您想从命令行为该宏提供非默认值 请尝试对宏定
  • 多线程访问文件

    我们有一个多线程java程序 多个线程将写入一个文件 一个线程将从该文件中读取 我正在寻找一些设计想法 是否需要同步 文件通道理论上是线程安全的 来自javadoc 文件通道可供多个并发线程安全使用 这 close 方法可以随时调用 具体由
  • 读取套接字时Java中断线程[重复]

    这个问题在这里已经有答案了 可能的重复 如何立即终止阻塞在套接字IO操作上的线程 我有一个客户端在线程中运行 想要从 Java 中的套接字读取数据 但在阅读时 也许我想杀死线程 所以我interrupt它 但是套接字的读取方法会抛出异常吗I
  • 如何在 jQuery 中循环遍历数组?

    我正在尝试循环遍历一个数组 我有以下代码 var currnt image list 21 32 234 223 var substr currnt image list split array here 我正在尝试从数组中获取所有数据 有
  • C# - 捕获鼠标光标图像

    背景 我正在编写一个屏幕捕获应用程序 我的代码基于此项目 http www codeproject com KB cs DesktopCaptureWithMouse aspx display Print 请注意 代码还捕获了鼠标光标 这对
  • PHP iOS AES 加密

    我在尝试使用 AES 加密在 PHP 和我的 iOS 应用程序之间进行通信时遇到了问题 到目前为止 我已经考虑了两种实现方法 第一个是使用 OpenSSL 在 iOS 方面 我以模仿此处显示的代码的方式实现 http saju net in
  • 如果向下滚动经过它,则有一个 div 紧贴在屏幕顶部[重复]

    这个问题在这里已经有答案了 我有一个 div 当我的页面首次加载时 它距离顶部大约 100px 它包含页面的一些按钮等 当用户滚动经过它时 我希望 div 跟随 用户 因为它附加到屏幕顶部 当用户返回到页面顶部时 我希望它回到原来的位置 V
  • 如何使用 CSS 删除没有 html 标签的字符串

    我需要删除没有的字符串html tag 例如 div class A a href class link keep this a and i want to remove this div 我可以只使用 css 来做到这一点吗 也许你可以使
  • Eclipse + Maven + JavaServer Faces -> ClassNotFoundException:StartupServletContextListener

    Summary 当我尝试从 Eclipse 中 在 Tomcat 7 0 上 运行 JSF 2 0 应用程序时 出现以下异常 Problem SEVERE Error configuring application listener of
  • 消除解析器精神规则中的左递归 x3

    我目前陷入了一条规则 我试图使用 boostspirit x3 来解析 这是我要解析的 EBNF 使用 Spirit 中的 运算符作为列表 type class type lambda type lambda type more arg l
  • “NoMethodError:[:not(.block-layered-nav)]:Array的未定义方法‘特异性’”

    这是对这篇文章的补充 无法在 Magento CE 1 9 中编译 rwd 皮肤 SCSS Windows 8 1 PowerShell Compass 1 0 1 Polaris Sass 3 4 6 Selective Steve ru
  • Pandas 按列将 CSV 拆分为多个 CSV(或 DataFrame)

    我对一个问题感到非常困惑 如果有一些帮助或提示 我将不胜感激 问题 我有一个 csv 文件 其中有一列可能有多个值 例如 Fruit Color The evil column Apple Red something1 Apple Gree
  • 使用 ant 编辑/追加数据到文本文件

    我正在尝试在 ant 构建过程中向 jad 文件添加属性 ant 中有任务可以做到这一点吗 我需要做的就是在文本文件的末尾添加一行文本 但我找不到执行此操作的任务 我相信这会起作用 现在测试一下
  • 检测 jQuery.ajaxComplete() 中是否存在 HTTP 方法(POST、GET)

    In a jQuery ajaxComplete 如何检测 HTTP 方法 特别是 GET 或 POST 我尝试阅读 jQuery 文档并四处搜索 但似乎找不到传递给内部函数处理程序的 3 个对象的太多文档 jQuery element a
  • 如何诊断或检测 Java 静态初始化器中的死锁

    在 Java 中使用静态初始化器是否是一个好主意超出了这个问题的范围 我在 Scala 应用程序中遇到了死锁 我认为这是由编译类中的互锁静态初始化器引起的 我的问题是如何检测和诊断这些死锁 我发现当涉及静态初始化程序块时 用于死锁的普通 J
  • 如何将 jQuery 自动完成组合框与 AJAX JSON 数据一起使用?

    我需要使用组合框执行以下操作 Select box有一个用户可以搜索的默认城市列表 如果用户在input框 我需要进行 ajax 调用来获取数据并向用户显示选项 如果根据用户的请求获取数据 则应将这些城市附加到以下选项中Select box
  • 如何关闭生产中的 Node.js Express(ejs 模板引擎)错误?

    当我在开发服务器上出现错误时 Express 会发送回溯作为响应 然而 这对于生产来说并不好 我不想让任何人看到我的引用 我怎样才能关闭它 注意 我使用 EJS 作为模板引擎 这可能是原因 而不是表达 例如 当我在 ejs 模板中有一个未定