javascript - 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 工具可以捕获参考错误,这种情况永远不会发生,但我仍然想知道如何捕获此类错误。
解决方案
我偶然发现了同样的问题。
我使用 expressjs 错误处理程序捕获引用错误的解决方案是在路由函数中使用 try 和 catch 块,然后在 catch 块中使用 next(err)。不过,您必须检查该错误是否真的是参考错误。
推荐阅读
- php - 如何上传已经上传的文件
- angularjs - 如何在 Ionic v1 中进行长按?
- javascript - 管理员可以使用 JavaSricpt SDK 将 Facebook 群组中的成员静音吗?
- laravel-5 - 尝试将 Laravel Homestead 连接到 sqlsrv 数据库时出现错误的网关错误
- oauth - 刷新的 OAuth2 令牌具有无效签名 (Azure AD OAuth2)
- javascript - Jquery Hide Show 似乎无法正常工作
- oracle - Oracle:按日期对结果进行排序,子组按相同日期
- php - 分别加入表插入和更新
- c# - 为什么在 CompensatingCollection 上调用 IQueryable 方法会引发 System.NotSupportedException
- python - Python-opencv 从数据类型未知的字节字符串中读取图像(uint8/16)