I've been trying get an error when running wrong codes. The following code tries to update a record which has _id value 5. Actually there is no such as a record. Actually doesn't exist such a record. But I can't catch any error message with the following function.
What should I do?
collection.update(
{ _id : "5" },
// { _id : req.session.User._id },
{ $set: { password : req.param('password') } },
{ writeConcern: { w: "majority", wtimeout: 3000 } },
function(err, result) {
if (err) { console.log(err); return err; }
res.send("/user/show");
}
);
The callback of update() has 2 arguments, err and result. When the item is updated, result is set to true, false otherwise. So when the item is not updated because item is not found, it's not considered an error, so err is null. if (err) won't be true. You need to test for updated this way:
collection.update(
{ _id : "5" },
// { _id : req.session.User._id },
{ $set: { password : req.param('password') } },
{ writeConcern: { w: "majority", wtimeout: 3000 } },
function(err, result) {
if (err) { console.log(err); res.send(err); return;}
if (result) {
res.send("/user/show");
} else {
res.send("/user/notshow");
}
);