[英]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.