【发布时间】:2020-11-25 05:59:53
【问题描述】:
背景:我有一个相当大的项目,它是一个社交媒体后端。我们在 JS 中使用 MondoDB (w/mongoose) 和 Express。我的问题是:是否有必要继续将每条路由包装在 try/catch 块中以确保响应?目前几乎我们的所有路线(有些需要返回更具体的错误)如下所示:
router.get('/path/to/route', async (req, res, next) => {
try {
// function of route
} catch (err) {
res.status(500).send({ status: false })
}
}
我怀疑在每条路线上持续使用try/catch 块或使用async 函数可能存在一些反模式。我的想法是简单地制作一个发送 500 响应的标准错误处理程序,但是我相信 try/catch 仍然需要使用 next(err)
总体:
- 我们的代码是反模式的吗?
- 路由应该使用异步吗?
- 应该继续使用
try/catch块吗? - 正确的模式是什么?
如果有人有时间回复,非常感谢。
【问题讨论】:
标签: javascript node.js mongodb express asynchronous