【发布时间】:2018-05-01 17:37:05
【问题描述】:
我在 Node js 和 Mongodb 中创建了一个基本的 REST api。我想使用带有自定义参数的查找来更新值,例如name。我能够使用自定义 GET 方法获取用户,但它在 PUT/POST 方法中不起作用。
这是架构:
{
name:String,
value:Number
}
代码如下:
//v1/api/users/:name -更新
api.put('/users/:name',(req,res)=>{
Users.find({name:req.params.name},(err,user)=>{
if(err){
res.send(err);
}
console.log(req.body.name);
console.log(req.body.value);
user.value= req.body.value;
user.save(err => {
if(err){
res.send(err);
}
res.json({message:'Updated '});
});
});
});
例如,如果mongoDb 有"name":"sam" 并且我使用 `localhost:3000/v1/api/users/sam` 和 body 作为
1.{"value":300},我收到错误提示
无法设置未定义的属性“名称”
2.当我记录第一个错误时,我知道没有定义名称会给我带来错误。所以我使用了这个{"name":"sam","value":300},现在错误是用户。保存不是函数。
使用FindById更新是有效的,但在客户端情况下,用户无法从数据库中获取id,所以我尝试了上述方法。
请帮帮我
【问题讨论】:
标签: node.js mongodb rest express