gpt4 book ai didi

javascript - 在 POST Express 中使用隐藏输入

转载 作者:行者123 更新时间:2023-11-30 06:13:25 24 4
gpt4 key购买 nike

我需要使用 get 中的先前数据向 express Controller 发送 POST。

我收到了一封电子邮件,用于重设密码链接。用户点击链接,看起来像 example.com/user/reset/[reset token]

用户输入新密码,然后提交更新数据库的请求。

但我似乎无法随请求发布重置 token

这在我的 GET Controller 中

res.render('resetPassword');
req.body['hiddenToken'] = req.params.token;

但是在我的 POST Controller 中,我似乎无法访问那个 req.body.hiddenToken key

隐藏输入的 Handlebars 代码 ojit_代码

获取 Controller

// User Reset GET Route -> verifies token, adds a hidden elm to page, posts data
router.get('/reset/:token', (req, res) => {
PasswordToken.findOne({token: req.params.token})
.then(token => {
if (!token) {
res.render('resetPassword');
req.body['hiddenToken'] = req.params.token;

}
else {
req.flash('error_msg', 'Token not Found, Try Submitting Again');
res.redirect('/user/login')
}
})
});

在 POST 中,<input type="hidden" class="form-control" name="hiddenToken"> 返回

{ hiddenToken: '',
password: '123456789',
passwordConf: '123456789'
}

也许 handlebars 中有一种方法可以将参数注入(inject)到 console.log(req.body); 标签中?

最佳答案

req.body 上设置属性在路由中没有多大意义,因为它会在之后丢失(请求结束)。如您所说,您可以将 token 传递给 Handlebars :

     res.render('resetPassword', { token: req.params.token });

然后在 handlebars 内部,将其添加为输入值:

 <input type="hidden" class="form-control" name="hiddenToken" value="{{token}}">

现在 token 被发送到 HTML 中的客户端,然后当用户发送表单时 token 将作为 POST 请求数据的一部分发回。

关于javascript - 在 POST Express 中使用隐藏输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57561062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com