3

I've been trying get an error when running bad code. The following code tries to update a record which has _id value 5. There is actually no such record, but I can't catch any error messages 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");
    }
);

1 Answer 1

4

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");
  }
);
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.