Nodejs URL参数未传递给POST方法

时间:2016-04-03 19:04:59

标签: node.js express

我遇到的问题是我的POST方法没有传递我的URL参数,而是使用路径路径中的动态参数占位符。这是因为我需要将该参数设置为我的表单中的隐藏字段才能在POST方法中使用它?我只是将值用于查询过滤条件,而不是将其作为值传递给我的数据库记录。

/*====   /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'

0 个答案:

没有答案