在 POST Express 中使用隐藏输入
Using hidden input in POST Express
我需要使用 get 中的先前数据向 express 控制器发送 POST。
我收到了一封重设密码的电子邮件link。用户单击 link,它看起来像 example.com/user/reset/[reset token]
用户输入新密码,然后post请求更新数据库。
但我似乎无法 post 带有请求的重置令牌
这在我的 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);
returns
{ hiddenToken: '',
password: '123456789',
passwordConf: '123456789'
}
也许车把中有一种方法可以将参数注入 value
标签?
在 req.body
上设置属性在路由中没有多大意义,
因为它会在之后丢失(请求 结束 )。如您所说,您可以将令牌传递给车把:
res.render('resetPassword', { token: req.params.token });
然后在 handlebars 内,将其添加为输入值:
<input type="hidden" class="form-control" name="hiddenToken" value="{{token}}">
现在令牌被发送到 HTML 内的客户端,然后当用户发送表单时,令牌将作为 POST 请求数据的一部分发回。
我需要使用 get 中的先前数据向 express 控制器发送 POST。
我收到了一封重设密码的电子邮件link。用户单击 link,它看起来像 example.com/user/reset/[reset token]
用户输入新密码,然后post请求更新数据库。
但我似乎无法 post 带有请求的重置令牌
这在我的 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);
returns
{ hiddenToken: '',
password: '123456789',
passwordConf: '123456789'
}
也许车把中有一种方法可以将参数注入 value
标签?
在 req.body
上设置属性在路由中没有多大意义,
因为它会在之后丢失(请求 结束 )。如您所说,您可以将令牌传递给车把:
res.render('resetPassword', { token: req.params.token });
然后在 handlebars 内,将其添加为输入值:
<input type="hidden" class="form-control" name="hiddenToken" value="{{token}}">
现在令牌被发送到 HTML 内的客户端,然后当用户发送表单时,令牌将作为 POST 请求数据的一部分发回。