尝试使用 PUT 请求更新数据。但是,数据不会更新并返回邮递员中的先前数据。邮递员提出请求:http://localhost:3000/api/actors/5daa8f1c5845ad0b5826b8d9?name=Tom邮递员回复:{ "createdAt": "2019-10-19T04:16:13.317Z", "updatedAt": "2019-10-19T04:16:13.317Z", "_id": "5daa8f1c5845ad0b5826b8d9", "name": "scarlett johansson", "birthday": "1980-10-14T00:00:00.000Z", "country": "usa", "__v": 0}我也尝试过使用 findByIdAndUpdate。没有得到结果。任何帮助,将不胜感激。控制器:exports.updateActor = async(req, res, next) => { try { const actorId = req.params.actorId; const data = req.body; const updateActor = await Actor.findById(actorId); updateActor.set(data); const actor = await updateActor.save(); // res.status(200).json({ message: "Data has Updated Successfully!" }); res.send(actor); } catch (err) { res.status(500).json({ message: err.message }); }};路由器:router.put('/actors/:actorId', Actor.updateActor);
3 回答
![?](http://img1.sycdn.imooc.com/545863c10001865402200220-100-100.jpg)
富国沪深
TA贡献1790条经验 获得超9个赞
要解决 ObjectId 错误,请使用以下代码。
var mongoose = require('mongoose');
const updateActor = await Actor.findOneAndUpdate({"_id":mongoose.Types.ObjectId(actorId)},data, { new: true });
res.send(updateActor);
![?](http://img1.sycdn.imooc.com/5f33c0c90001f9ad05720572-100-100.jpg)
白衣非少年
TA贡献1155条经验 获得超0个赞
Please use following code for getting update data
Actor.findOneAndUpdate({"_id":ObjectId(actorId)},data,
{ new: true}).then((updatedData) => {
res.send(updatedData);
});
添加回答
举报
0/150
提交
取消