我有一个 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);
}
)
这对任何人都不合适吗?
答案 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。