Node.js Nodejs URL参数未传递给POST方法
我遇到一个问题,我的POST方法没有传递URL参数,而是使用路由路径中的动态参数占位符。这是因为我需要在表单中将该参数设置为隐藏字段,以便在POST方法中使用它吗?我正在调整使用查询筛选条件的值,而不是将其作为值传递给我的数据库记录Node.js Nodejs URL参数未传递给POST方法,node.js,express,Node.js,Express,我遇到一个问题,我的POST方法没有传递URL参数,而是使用路由路径中的动态参数占位符。这是因为我需要在表单中将该参数设置为隐藏字段,以便在POST方法中使用它吗?我正在调整使用查询筛选条件的值,而不是将其作为值传递给我的数据库记录 /*==== /RESET ====*/ siteRoutes.route('/reset/:token') .get(function(req, res){ models.User.findOne({
/*==== /RESET ====*/
siteRoutes.route('/reset/:token')
.get(function(req, res){
models.User.findOne({
where: {
resetPasswordToken: req.params.token, //Returns the correct parameter
resetPasswordExpires: {
$gt: moment().format('YYYY-MM-DD HH:mm:ss')
}
}
}).then(function(){
res.render('pages/app/reset-password.hbs');
})
})
.post(function(req, res){
async.waterfall([
function(done){
models.User.update({
password: req.body.password,
resetPasswordToken: undefined,
resetPasswordExpires: undefined
}, { where: {
resetPasswordToken: req.params.token, //Returns ':token'
resetPasswordExpires: {
$gt: moment().format('YYYY-MM-DD HH:mm:ss')
}
}})
// Nodemailer
}
])
res.redirect('/login');
});
控制台日志的示例:
Executing (default): UPDATE `user` SET `password`='password',`updatedAt`='2016-04-03 18:57:14' WHERE `reset_password_token` = ':token' AND `reset_password_expires` > '2016-04-03 14:57:14'
当
reset\u password\u token===未定义时,您希望在查询中使用哪种类型的值<代码>空值
?空字符串?还有别的吗?您需要将resetPassword*
字段设置为适当的/预期的值,而不仅仅是undefined
@mscdex。令牌是通过函数从不同的路径创建的。此处的路由显示来自我的函数的结果令牌,该令牌与文件中的记录匹配,但是当我尝试提交新密码的表单时,POST方法找不到该参数,尽管它位于URL中<代码>函数(完成){crypto.randomBytes(20,函数(err,buf){var resetToken=buf.toString('hex');完成(err,resetToken);});