繁体   English   中英

未在 nodejs express 中使用 PUT 编辑数据

[英]Data not edited using PUT in nodejs express

我是 Node.js 的新手,我遇到了一个问题。 我想按用户名编辑数据,但是当我使用邮递员尝试时没有任何反应(数据仍然相同,没有错误)。 请看一下我的代码:

 //Edit User app.put("/user/:username", (req, res) => { userData = userData.filter( user => { if (user.username === req.params.username) { const newUser = { name: req.body.name , email: req.body.email , username: req.body.username, password: req.body.password, role: req.body.role, } userData.push(newUser) } return res.json(userData) }) })

我的邮递员截图: 在此处输入图片说明

有人能帮我吗? 先谢过!

您使用.push()一遍又一遍地向userData添加新项目。 你想要的是更新现有的数组项:

if (user.username === req.params.username) {
  user.name = req.body.email;
  ...
  user.role = req.body.role;
}

此外,您的路线有错误。 如果没有找到这样的username你可能想要返回 HTTP 404。这是我将如何编写相同的 REST 端点:

//Edit User
app.put("/user/:username", (req, res) => {
    const user = userData.find(u => u.username === req.param.username);
    if (!user) return res.sendStatus(404); // assuming you are using Express.js

    const { name, email, username, password, role } = req.body;
    Object.assign(user, { name, email, username, password, role });

    res.json(userData);
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM