node.js - 消除异步快速路由回调中重复的 try catch 语句?
问题描述
我有一个用 Express 用 Node JS 编写的 api。我所有的路线都遵循这种模式:
router.get("/my/url", async (req, res) => {
try{
// await code...
}catch(error){
console.error(error.message);
res.status(500).json({message: "Server Error"})
}
});
这个 try catch 在我所有的路线中都是一样的。有什么方法可以否定这一点,只写在一个地方,所以我的路线更像:
router.get("/my/url", async (req, res) => {
// await code...
});
解决方案
你应该检查这个包express-async-errors
之后导入包express
,然后你只需要像这样定义错误处理程序
app.use((err, req, res, next) => {
console.error(err.message);
res.status(500).json({message: "Server Error"})
});
推荐阅读
- php - 为什么我在这个 PHP foreach 循环中收到警告错误?
- swift - 以后如何在 Swift 中重用变量
- c# - C#(C++ 也会很酷)在两个带有索引的大型数组/列表中找到差异的最快方法
- android - 移动设备上的 TensorFlow lite 精度下降
- python - 弃用警告:对象类型
不能安全地解释为整数 - android - AsyncTask 完成后关闭对话框时出现 WindowManager$BadTokenException
- python - 与 Django uwsgi spooler 函数不存在关系
- rust - 拳击如何影响借阅检查?
- sql-server - 删除中不存在的地方
- php - Gmail验证php网站项目的密码