Обработка ошибок в Mon goose async / await call - PullRequest
0 голосов
/ 09 февраля 2020

У меня есть функция asyn c, которая ищет документ Mon goose по его идентификатору и удаляет его. У меня вопрос: можно ли просто иметь предложение catch для обработки любой ошибки, или я должен также отправить обратный вызов (чтобы поймать ошибки Mon goose?).

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 Ответ

1 голос
/ 09 февраля 2020

Луна goose по умолчанию имеет функции стиля обратного вызова. В вашем случае вам нужно добавить .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)
    }
}
...