【发布时间】:2019-12-24 22:17:04
【问题描述】:
我需要使用 get 中的先前数据向快速控制器发送 POST。
我收到了一封电子邮件,要求重置密码链接。用户点击链接,看起来像example.com/user/reset/[reset token]
用户输入新密码,然后发布更新数据库的请求。
但我似乎无法在请求中发布重置令牌
这在我的 GET 控制器中
res.render('resetPassword');
req.body['hiddenToken'] = req.params.token;
但在我的 POST 控制器中,我似乎无法访问 req.body.hiddenToken 键
隐藏输入的车把代码
<input type="hidden" class="form-control" name="hiddenToken">
获取控制器
// 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 中,console.log(req.body); 返回
{ hiddenToken: '',
password: '123456789',
passwordConf: '123456789'
}
也许车把中有一种方法可以将参数注入value 标签?
【问题讨论】:
-
能否显示完整的 GET 请求代码?
-
@JonasWilms 刚刚做到了!谢谢
-
作为旁注,如果令牌确实存在,则显示Token not found。
标签: javascript node.js express handlebars.js