Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Nodejs URL参数未传递给POST方法_Node.js_Express - Fatal编程技术网

Node.js Nodejs 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({

我遇到一个问题,我的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'

reset\u password\u token===未定义时,您希望在查询中使用哪种类型的值<代码>空值
?空字符串?还有别的吗?您需要将
resetPassword*
字段设置为适当的/预期的值,而不仅仅是
undefined
@mscdex。令牌是通过函数从不同的路径创建的。此处的路由显示来自我的函数的结果令牌,该令牌与文件中的记录匹配,但是当我尝试提交新密码的表单时,POST方法找不到该参数,尽管它位于URL中<代码>函数(完成){crypto.randomBytes(20,函数(err,buf){var resetToken=buf.toString('hex');完成(err,resetToken);});