在成功/错误情况下都会触发回调函数

时间:2018-09-28 06:13:10

标签: node.js mongodb express mongoose

我有一个 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 :(得分:1)

即使操作成功,回调参数也会始终触发。

您应该检查err是否具有真实值,如果正确,则抛出错误,否则成功。

这是一个例子:

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

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

请记住,以上代码仅用于说明概念。

期望您将回调函数传递给此函数,该函数将遵循相同的概念,以便可以将操作状态通知给调用代码。

这是基于Node.js回调的代码中的standard way of doing error handling