我正在尝试使用id作为参数来更新单个数据,但是当我将数据作为JSON对象发送时,当我控制台记录传递的JSON对象时,它将返回null。
这就是我更新数据所要做的。
// Update By Id
router.put('/:id', (req, res) => {
if (!ObjectId.isValid(req.params.id)) {
return res.status(400).send(`No records with given id : ${req.params.id}`);
}
var emp = {
name : req.body.name,
position : req.body.position,
office : req.body.office,
salary : req.body.salary
};
Employee.findByIdAndUpdate({_id:req.params.id}, {$set : emp}, {new : true}, (err, doc) => {
if(!err) { res.send(doc); }
else { console.log('Error in Employee Update : ' + JSON.stringify(err, undefined, 2)); }
});
});
我传递到请求正文中的数据。
{
"name": "Some Name",
"position": "A Position",
"office": "Location Name",
"salary": 60000
}
当我尝试控制台日志时,我传递的数据返回未定义的值,并且所有数据均更新为空。
console.log(emp.name);
答案 0 :(得分:0)
我不知道如何,但是通过一些修改和重新启动服务器,以上代码可以正常工作。
这是我修改过的
Employee.findByIdAndUpdate({_id:req.params.id}, {$set : emp}, {new : true}, (err, doc)
收件人
Employee.findByIdAndUpdate( req.params.id , {$set : emp}, {new : true}, (err, doc)
感谢 Fanpark