首页 > 解决方案 > express.js 如何捕获 ReferenceError

问题描述

// Sample code
app.get("/test", (res, res) => {
   return res.status(200).send(SOME_UNDEFINED_VAR);
});

在 ReferenceError 的情况下,express.js 默认发送 500。

express.js 将ReferenceError写入标准输出,但我想使用我的记录器将此类错误写入文件。

尝试使用

app.use((err, res, res) => {
    logger.error(err) // this handler is not getting called
    // this handler is only for `next(err)`
})

我知道 linting 工具可以捕获参考错误,这种情况永远不会发生,但我仍然想知道如何捕获此类错误。

标签: javascriptnode.jsexpresserror-handling

解决方案


我偶然发现了同样的问题。

我使用 expressjs 错误处理程序捕获引用错误的解决方案是在路由函数中使用 try 和 catch 块,然后在 catch 块中使用 next(err)。不过,您必须检查该错误是否真的是参考错误。


推荐阅读