Javascript 在POST Express中使用隐藏输入
我需要使用get以前的数据向express控制器发送帖子 我有一封电子邮件正在发送一个重置密码链接。用户单击链接,看起来像Javascript 在POST Express中使用隐藏输入,javascript,node.js,express,handlebars.js,Javascript,Node.js,Express,Handlebars.js,我需要使用get以前的数据向express控制器发送帖子 我有一封电子邮件正在发送一个重置密码链接。用户单击链接,看起来像example.com/User/reset/[reset token] 用户输入新密码,然后发布更新数据库的请求 但我似乎无法将重置令牌与请求一起发布 这在我的GET控制器中 res.render('resetPassword'); req.body['hiddenToken'] = req.params.token; // User Reset GET Route -&
example.com/User/reset/[reset token]
用户输入新密码,然后发布更新数据库的请求
但我似乎无法将重置令牌与请求一起发布
这在我的GET控制器中
res.render('resetPassword');
req.body['hiddenToken'] = req.params.token;
// 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控制器中,我似乎无法访问req.body.hiddenToken
键
隐藏输入的我的把手代码
获取控制器
res.render('resetPassword');
req.body['hiddenToken'] = req.params.token;
// 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(请求主体)代码>返回
{ hiddenToken: '',
password: '123456789',
passwordConf: '123456789'
}
也许在车把中有一种方法可以将参数注入值
标记?在req.body上设置属性
在路由中没有多大意义,
因为它将在之后丢失(请求结束)。正如您所说,您可以将令牌传递给车把:
res.render('resetPassword', { token: req.params.token });
然后在把手内部,将其添加为输入值:
<input type="hidden" class="form-control" name="hiddenToken" value="{{token}}">
现在令牌被发送到HTML内部的客户端,然后当用户发送表单时,令牌将作为POST请求数据的一部分被发送回 你能显示完整的GET请求代码吗?@Jonaswillms刚刚做了!作为旁注,如果令牌确实存在,则显示未找到令牌。非常感谢您的帮助!我很感激。我是个新来表达的人,所以我什么都不知道。