有这个密码。想换个场地。
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.");
}