Javascript PUT方法mongoose模型

Javascript PUT方法mongoose模型,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我有这个密码。想去车场 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;}

我有这个密码。想去车场

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.'});
        });
      })
    });
收到这个错误 如果(check!=false){intain.check=false;} ^


引用错误:未定义检查

您可能找不到具有该
id
的入口。您应该首先检查是否返回了任何
摄入量
。将
if(摄入)
包裹在其周围以捕获该异常

只有存在实际错误时才会返回错误。如果没有找到入口,那么
findById
将只返回一个空对象
{}
。因此,如果您尝试检查空对象的字段,您将得到一个错误

尝试:


当定义了
err
时,它将返回两个响应(原始代码的作用相同:当发生错误并发送错误响应时,它不会从函数返回)。用于更改检查状态的if…else块不是必需的。。。检查=!摄入。检查;
  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.");
      }