这是我的控制器:
const updateUser = async (req, res) => {
const uid = req.params.uid
const updates = req.body
console.log(updates)
const status = await dao.updateUser(uid, updates)
res.json(status)
}
这是我的刀:
export const updateUser = async (uid, userUpdates) => {
await usersModel.updateOne({ _id: uid }),
{ $set: userUpdates }
}
这是我在json主体中发送的内容(作为userUpdates):
{
"username": "hihi",
"password": "chloe123",
"firstName": "chloe",
"lastName": "hu",
"email": "123456@gmail.com",
"dob": "2022-12-05",
"phone": "000-000-0000",
"type": "STUDENT"
}
我搜索了这个错误,我发送的是一个对象,而不是一个新的模型,所以我不明白为什么这个错误仍然发生,因为如果它是一个对象,它不会自动创建a _id,我想知道这个应该如何解决。谢谢!
1条答案
按热度按时间dm7nw8vv1#
DAO方法错误地使用了updateOne,您将$set部分放在了updateOne之外。它应该是,
更新一个用户({_id:uid},{ $设置:用户更新})