apiRoutes.put('/intake/:id', function(req, res) {
var id = req.params.id;
Intake.findById({id, function(err, intake) {
if (err)res.send(err);
intake.check = true;
intake.save(function(err) {
if (err) {return res.json({success: false, msg: 'Error'});}
res.json({success: true, msg: 'Successful update check state.'});
});
}})
});
有什么问题?在控制台我看到ID,没关系,但数据库没有变化
答案 0 :(得分:1)
{{> loginButtons}}
答案 1 :(得分:1)
您向我们提供的信息太少,无法帮助您。但是我得到了一些关于如何找出问题的提示:(我在答案的最后添加了示例代码。)
使用正确的代码格式。错误更容易找到。
请避免function updateData(id, msg) {
var data = outputData(id, msg);
var modelToUpdate = collection.findWhere({id: data.id});
if(modelToUpdate) {
modelToUpdate.set(data);
}
}
。大多数快递应用程序在路径管道末尾的HTML页面转换中提供错误。这仅在您致电res.send(err)
时有效。如果您的应用在管道末尾没有提供错误页面生成,那么您可以使用res.next(err);
。
使用res.status(400).json({success: false, msg: err.message});
或res.send
或res.next
之后,必须先通过res.json
结束函数的执行,然后再调用其中一个函数。在嵌套或异步方法调用的情况下,这可能非常复杂。但在你的例子中,这很容易。
使用一些日志输出来查看您到达的代码部分以及哪些部分代码。
return
打印出该对象的结构。
希望这会有所帮助。 ; - )
console.dir(<object>);
答案 2 :(得分:0)
你可以用这个
Intake.update({_id: req.params.id},
{
check : true
},
function(err){
if(err){
console.log(err);
res.status(400).send(err.errors);
}else{
res.status(200).end();
}
});