当我尝试执行PUT请求更新时,我不断收到上述错误(错误发生在行#34; item.save(函数(错误)..."。以下是我的PUT请求代码:
outer.put('/alltweets/:id', function(req, res){
var db = req.db;
db.collection('tweetdb').findById(req.params.id, function (err, item){
if (err)
res.send(err);
item.tweet = req.body.tweet;
item.date = req.body.date;
//save the item
item.save(function(err) {
if(err)
res.send(err);
res.json({message: 'item updated' });
});
});
});
目前使用Node,Express和MongoDB。
答案 0 :(得分:0)
做了一些研究,最后意识到保存方法实际上并不存在于Mongoskin中。相反,他们使用更新(特别是在较新版本中的updateById)。 PUT请求现在使用下面的代码(对于Mongoskin):
router.put('/alltweets/:id', function(req, res){
var db = req.db;
db.collection('tweetdb').updateById(req.params.id, {$set:req.body}, {safe: true, multi: false}, function(e, result){
if (e) return next (e);
res.send((result===1)?{msg:'success'}:{msg:'error'})
});
});