Вызов метода catch () для метода save () для объекта документа mon goose дает мне неопределенную ошибку - PullRequest
0 голосов
/ 30 января 2020

Ниже фрагмент кода использует mon goose findById(), чтобы получить объект документа и обновить значения некоторых полей, возвращаемых в этом документе. Но проблема в том, что он выполняет код внутри блока then(), но ответ имеет нулевое значение, а также выдает мне сообщение «Не удается прочитать свойство« catch »из undefined», что я не могу понять, почему это происходит.

* 1004 » *

1 Ответ

1 голос
/ 30 января 2020

Предполагая, что .save не принимает параметр и возвращает обещание, код должен выглядеть следующим образом

Script.findById(scriptId)
  .then(script => {
    if (script) {
      const scriptId = script._id.toString();
      const demoUrl = `${scriptId}.mydomain.com`;
      if (true) {
        script.approved = true;
        script.demoUrl = demoUrl;
        script.save()
          .then(response => {
            console.log(response); // this logs a null value
            res.json({
              "message": "Script approved.",
              "demoUrl": demoUrl
            });
          })
          .catch(error => { // throws me the error "Cannot read property 'catch' of undefined"
            next(error);
          });
      }
    }
  });

После сохранения сохранить ответ, а затем выполнить перехват.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...