我有一个异步功能,该功能通过其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
}
})
答案 0 :(得分: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)
}
}