模型中的方法:
DistillerSchema.methods.update = function(o, u, cb){
this.model.findByIdAndUpdate(o, u, cb);
};
控制器:
exports.update = function(req, res){
console.log('Bodddyyy!!!!!!!', req.body);
console.log('params', req.params);
Distiller.update(req.body._id, req.body, function(err, distiller){
console.log('update!!!!', distiller);
res.send({distiller:distiller});
});
};
console.log:
Bodddyyy!!!!!!! { _id: '573592584435639d18242d3c',
name: 'chewbacca333333',
email: 'chewbacca@chew.com',
photo: 'https://s3.amazonaws.com/whiskey-upload/distillers/9ec98f42-7d43-4be9-a372-2a0e90cd4f30',
__v: 0,
social:
{ facebook: 'https://www.facebook.com',
twitter: 'https://www.facebook.com',
instagram: 'https://www.facebook.com' },
whiskeys: [],
location: [],
timestamp: '2016-05-13T08:37:44.257Z' }
params { id: '573592584435639d18242d3c' }
update!!!! { ok: 0, n: 0, nModified: 0 }
我不确定是什么错。我从客户端传递了所有正确的数据,根据mongoose文档,我觉得我传递了正确的参数。
它不断返回:{ok:0,n:0,nModified:0}
也许是我在模型中使用该方法的方法?
答案 0 :(得分:1)
我认为正如通过评论所提到的那样,这些名字似乎是相互矛盾的。你需要交换方法类型。
答案 1 :(得分:0)
您应致电:req.body._id
或req.params.id
。
但您正在致电req.body.id