PUT方法mongoose模型

有这个代码。 想chanche che场。

apiRoutes.put('/intake/:id', function(req, res) { var id = req.params.id; Intake.findById(id, function(err, intake) { if (err)res.send(err); if (intake.check == false) {intake.check = true;} else {intake.check = false;} intake.save(function(err) { if (err) {return res.json({success: false, msg: 'Error'});} res.json({success: true, msg: 'Successful update check state.'}); }); }) }); 

如果(检查!= false)收到此错误{intake.check = false;} ^

ReferenceError:检查没有定义

你可能找不到那个id 。 你应该首先检查是否有任何intake返回。 包裹一个if(intake)来捕捉这个exception。

只有在出现实际错误时才会返回错误。 如果没有find摄入量,那么findById将只返回一个空对象{} 。 所以,如果你试图检查一个空对象的字段,你会得到一个错误。

尝试:

  Intake.findById(id, function(err, intake) { if (err) {res.send(err); return;} if (intake) { if (intake.check == false) {intake.check = true;} else {intake.check = false;} } else { res.send("No intake found."); }