我在MEAN Stack上阅读了一些教程,我正在研究几乎完成的教程,直到我尝试了更新功能。我继续接收400消息,当我查看chrome dev工具时,在网络选项卡下,我读到了响应,即" _id"是不允许的。
这是更新功能
$scope.update = () => {
console.log($scope.contact._id);
$http.put('/api/contacts/updatecontact/' + $scope.contact._id, $scope.contact)
.then(function(data) {
alert('Data was updated Successfully');
refresh();
});
};
这是api。
app.put('/api/contacts/updatecontact/:id', (req, res) => {
const id = req.params.id;
console.log(req.body.name);
// validation
const { error } = validateInput(req.body);
if (error){
return res.status(400).send(error.details[0].message);
}
const updatedContact = Contact.where({ _id: id });
updatedContact.update({
$set: { name: req.body.name, email: req.body.email
}
}, (err, contact) => {
if(err){
console.log('error occured');
}
res.json(contact);
console.log('contact successfully updated');
});
console.log(updatedContact);
});
希望我能得到一些帮助。答案 0 :(得分:1)
似乎node.api正在验证您传递的json对象。确保您发送的属性来自客户端。
确保您没有验证或删除节点上的验证。