【发布时间】:2021-12-08 00:51:02
【问题描述】:
我有这个要求:
// PUT that updates a user.
router.put('/api/user/:id', async (req: Request, res: Response) => {
const { email, name, avatar } = req.body
const userId = req.body._id
const conditions = {
_id : userId
}
const user = {$set: { "email": email, "name": name, "avatar": avatar } }
User.updateOne(conditions, user).then(doc => {
if (!doc) { return res.status(404).end() }
return res.status(200).json(doc)
}).catch(error => console.log(error))
})
我从请求中得到了这个响应:
{
"n": 0,
"nModified": 0,
"ok": 1
}
如果您可以在 StackOverflow 上找到有关 mongoose 中的 updateOne() 方法的信息,我可能已经尝试过了。无论我如何尝试,文档都不会更新。
编辑:我尝试在查询中使用 ObjectID,结果相同。
编辑 2:我想通了。正在使用 req.body.id 而不是 req.params.id 并且我正在使用参数来发送请求。感谢大家的帮助!
【问题讨论】:
-
你确定你的病情有结果吗?
-
似乎不是出于某种原因。
-
欢迎来到stackoverflow。我建议您阅读如何提出一个好问题 (stackoverflow.com/help/how-to-ask)。
-
您为用户 ID
req.body._id传递了错误的变量,它应该是req.params.id
标签: javascript node.js mongodb mongoose