Angularjs 如何为复杂的json对象定义PUT方法,以便使用nodejs脚本更新mongoDB中的记录?
我想通过在使用AngularJS的mongoDB对象上使用Angularjs 如何为复杂的json对象定义PUT方法,以便使用nodejs脚本更新mongoDB中的记录?,angularjs,node.js,mongodb,Angularjs,Node.js,Mongodb,我想通过在使用AngularJS的mongoDB对象上使用findOneAndUpdate()来定义一个put方法。我能够成功地执行GET和POST操作,但我很难定义PUT。下面是在app.js文件中定义的我的db对象: var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost:27017/testing23'); var idObj = Schema({ _id: String
findOneAndUpdate()
来定义一个put方法。我能够成功地执行GET
和POST
操作,但我很难定义PUT
。下面是在app.js
文件中定义的我的db对象:
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/testing23');
var idObj = Schema({
_id: String,
name : {
firstname : String,
lastname : String
},
phones : [Number],
emails : [String],
friends : [String]
});
var Error = mongoose.model('Error', idObj );
我的GET
和POST
如下:
app.get('/api/info',function(req,res){
Error.find(function(err,infos){
if(err)
return res.send(err);
return res.json(infos);
});
});
app.post('/api/info',function(req,res){
Error.create(req.body, function(err,infos){
if(err)
return res.send(err);
return res.json(infos);
});
});
对于PUT
我使用以下方法,但它不起作用:
app.put('/api/infos/:id',function(req,res){
Error.findOneAndUpdate({_id: req.params.id},req.body,function(err,infos){
if(err)
return res.send(err);
return res.json(infos);
});
});
如何才能成功执行PUT
操作?根据您的“查找和修改”命令应如下所示
Model.findOneAndUpdate(query, { $set: { name: 'jason bourne' }}, options, callback)
对于您提供的示例,如果您想更新名称,则
Error.findOneAndUpdate({_id: req.params.id},{ $set: { name: req.body }},{new: true},function(err,updatedInfos){
if(err)
return res.send(err);
return res.json(updatedInfos);
});
使用{new:true}
意味着返回更新的文档