PUT请求未通过mongdb

我创建了一个放置请求,当我使用邮递员尝试更新用户表中的电子邮件字段时,我得到Cannot PUT /api/user/5dab49630sdfsd3025a09d31d 我对nodejs和expressjs还是很陌生,所以如果这很简单,我深表歉意。这可能是我在邮递员中提出PUT请求的方式。我不太确定该如何通过其他方式传递电子邮件值。

邮递员PUT请求 http://localhost:3000/api/user/5dab496305de3025a09d31d/?email=newemail@gmail.com

app.put('/api/user/email/:id',(req,res) =>
User.update(
 {email: req.body.email},{where: {id: req.params.id}}
  ).then( user => {
  console.log(user);
  res.json(user);
  // res.sendStatus(200);
})
.catch(err => console.log(err)));

});
derwfqg 回答:PUT请求未通过mongdb

我们使用PUT,POST请求,因为我们不想通过URL公开用户信息,而我们的座右铭是在请求正文中隐藏用户信息。我们可以在URL中使用唯一字符串的id,但应避免在URL本身中使用电子邮件。而不是使用json body:-

{
 newEmail: "abc@abc.com"
}

获取以下ins代码:-

req.body.newEmail

这是您的更新代码:-

app.put('/api/user/email/:id',(req,res) =>
User.update(
{id: req.params.id},{email: req.body.newEmail}
).then( user => {
console.log(user);
res.json(user);
// res.sendStatus(200);
}).catch(err => console.log(err)));

});

在邮递员中,可以选择传递JSON正文。您只需要选择URL测试字段下方显示的正文,然后选择JSON类型即可。 希望这会有所帮助!

,

如果您尝试通过url传递它们,则应使用req.params.id和req.params.email。您可以使用req.params.id并将其添加到url的末尾,并在请求的正文中使用req.body.newEmail。

这是一个可行的示例,您可以对其进行适当修改。

router.put('/userinformation/incvh5/:id',res) => 
User.update(
 {vh5rec: req.body.vh5rec},{where: {id: req.params.id}}
  ).then( user => {
  console.log(user);
  res.json(user);
  // res.sendStatus(200);
})

.catch(err => console.log(err)));

本文链接:https://www.f2er.com/3164131.html

大家都在问