在 ExpressJs 路由中检查'req.params.id'时遇到'undefined'



我正在为登录用户构建一个重新发送验证电子邮件按钮。我的计划是让用户点击个人资料页面上的按钮,它会直接将电子邮件发送到用户的电子邮件地址。

点击按钮时,我似乎一直在将用户的数据发送到后端代码。

当我在路由设置中检查req.params.id时,我得到了undefined

这是我的路线:

//route for requsting verification email
router.post("/verify", middleware.isLoggedIn, async(req, res) => {
console.log(req.params.id);
})

这是ejs/html:

<form action="/verify" method="POST">
<input type="submit" class="btn btn-success btn-sm" value="Verify">
</form>

我认为我的html代码需要一些onClick事件来显式地将用户的id发送到服务器代码,以便找到正确的用户。然而,我不知道该怎么做。提前感谢您的帮助!

更新感谢@Mizibi帮助我理解req.paramsreq.body之间的区别。

所以我所做的是以这样的形式添加另一个隐藏的输入标签:

<form action="/verify" method="POST">
<input type="hidden" name="id" value="<%= currentUser.id %>" >
<input type="submit" class="btn btn-success btn-sm" value="Verify">
</form>

我将后端req.params.id更改为req.body.id,这将把currentUser的id传递给后端代码,用于查找用户并执行操作。

表单不发送参数id。

输入文档

<input name="id" type="text" value="youridvalue" />

您可以使用从后端检索

req.body.id

确保使用express.bodyParser((以便能够访问请求中的正文

仅供参考:请求参数是指URL中带有":"的项目,查询指与"?"关联的项目Hanfei Sun

最新更新