处理猫鼬异步/等待调用中的错误

时间:2020-02-09 02:49:21

标签: javascript node.js asynchronous mongoose async-await

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

答案 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)
    }
}
相关问题