有这个密码。想换个场地。

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;}
^
引用错误:未定义检查

最佳答案

你可能找不到那种id的摄入。您应该首先检查是否返回了任何intake。在它周围包装一个if(intake)以捕获该异常。
只有存在实际错误时才会返回错误。如果没有找到摄入,那么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.");
      }

09-20 14:07