使用await时,我在同步退货方面遇到问题。 mongo中的所有信息更新都没有问题,问题在于res.status(200).send(updatedData);返回旧数据而不是修补数据。
const updateUserData = async (req, res) => {
if (!(req.params.id && req.body.id && req.params.id === req.body.id)) {
const message =
`Request path id (${req.params.id}) and request body id ` +
`(${req.body.id}) must match`;
console.error(message);
return res.status(400).json({ message: message });
}
try{
const toUpdate = {};
const updateableFields = ["username","firstName", "lastName","bio","settings","cardCollection", "avatar"];
updateableFields.forEach(field => {
if (field in req.body) {
toUpdate[field] = req.body[field];
}
});
const id = req.params.id;
if(!id) return res.status(404).send({message:"id not found"})
if(!toUpdate) return res.status(404).send({message:"text not found"})
const updatedData = await User.findByIdAndUpdate(id, toUpdate);
console.log(updatedData);
res.status(200).send(updatedData);
}
catch(err){
res.status(500).send({message:"unable to update data"})
}
}