Функция обратного вызова срабатывает в обоих случаях успеха / ошибки - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть Nodejs / Express API с использованием Mongoose и Mongo .

У меня есть функция, которая выполняет обновление.

Обновление работает, но по некоторым причинам оно также всегда регистрирует ошибку.

Вот блок кода, на который я ссылаюсь:

Contacts.update(
  {
    'shared.emails._id': emailId
  }, 
  {
    $set: {
      'shared.emails.$.email_address': emailAddress,
      'shared.emails.$.email_type': emailType
    }
  }, 
  {
    'multi': true
  },
  function(err) {
    console.log('Error in updating shared emails: ', err);
  }
)

Разве это не так?смотри прямо на кого?

1 Ответ

0 голосов
/ 28 сентября 2018

Параметр обратного вызова будет всегда срабатывать, даже если операция была успешной.

Вы должны проверить, имеет ли err истинное значение, если это так, то выдает ошибку,в противном случае это был успех.

Вот пример:

  // ...
    'multi': true
  },
  function(err) {
    if (err) {
      return console.error(err);
    }

    // otherwise it was a success
    console.log('Updated');
  }
)

Имейте в виду, что приведенный выше код только для иллюстрации концепции.

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

Это стандартный способ обработки ошибок в узле.Код на основе обратного вызова js.

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