put request更新集合的第一个条目,不管我传递给请求的id是什么

hgb9j2n6  于 2021-09-23  发布在  Java
关注(0)|答案(0)|浏览(141)

我正在为一个网站建立一个管理面板,在那里你可以执行不同的操作,比如删除/编辑/创建条目。
我有一个更新所选项目的put请求,但不管url中传递的id是什么,它都会更新集合的第一个条目。这只发生在通过 Postman 进行操作时,而如果我尝试直接在管理面板中执行此操作,它会给我500个内部服务器错误,并且没有任何更改。
这是我的代码:

router.get('/:id', (req, res) => {
        Team.findOne({ id: req.params.id })
            .exec((err, team) => err ? res.json(err) : res.json(team));
    });

    router.put('/:id', (req, res) => {
        Team.findOneAndUpdate(req.params.id, req.body, (err, team) => {
            if (err) return res.status(500).send(err);
            return res.send(team);
        })
    });

(“团队”是我的 Mongoose 模式)。我做错了什么?提前谢谢!
更好的方法是使用补丁而不是put吗?我读到put主要用于完全替换条目,而补丁更适合部分更新。如果是这样,我如何调整上述代码以使用补丁?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题