处理 Mongoose 异步/等待调用中的错误
Posted
技术标签:
【中文标题】处理 Mongoose 异步/等待调用中的错误【英文标题】:Handling errors in Mongoose async/await call 【发布时间】:2020-05-24 17:58:10 【问题描述】:我有一个异步函数,它通过 ID 查找 Mongoose 文档并将其删除。我的问题是,是否可以只使用一个 catch 子句来处理任何错误,或者我也应该发送一个回调(以捕获任何 Mongoose 错误?)。
const myAsyncFunction = async (req, res) =>
try
await myModel.findByIdAndDelete(req.params.docId)
req.flash('info', 'Document was deleted.')
res.redirect('/')
catch (error)
console.log(error)
或者我应该有
await myModel.findByIdAndDelete(req.params.docId, function (error, user)
if (error)
// etc
)
【问题讨论】:
【参考方案1】:Moongoose 默认具有回调样式函数。在您的情况下,您需要添加 .exec()
以便能够 await
它并捕获异常。所以像这样的
const myAsyncFunction = async (req, res) =>
try
await myModel.findByIdAndDelete(req.params.docId).exec();
req.flash('info', 'Document was deleted.')
res.redirect('/')
catch (error)
console.log(error)
【讨论】:
以上是关于处理 Mongoose 异步/等待调用中的错误的主要内容,如果未能解决你的问题,请参考以下文章