【问题标题】:sailsjs update not firingsailsjs 更新未触发
【发布时间】:2015-03-29 01:39:10
【问题描述】:

我有这个应该可以工作的代码。我在其他地方有几乎相同的代码。但是,user.save 不会触发,User.update 也不会触发。我意识到这里有很多无关的代码,我移动了很多东西试图弄清楚为什么保存和更新都不起作用(是的,我知道我只需要一个,我都试过了已经单独,只是这样做来说明)。

User.findOneByEmail(req.param('email'), function foundUser (err, user) {
                if (err) return next(err);
E.l(user);
                if (!user) {
                    var noAccountError = [{name: 'noAccount', message: 'The email ' + req.param('email') + ' was not found.'}]
                    req.session.flash = {
                        err: noAccountError
                    }
                    res.redirect('/user/forgot');
                    return;
                }

                var userObj = {
                    lostpasswordtoken: Helper.Guid()
                }
                user["lostpasswordtoken"] = userObj.lostpasswordtoken;

                user.save(function(err){
                    if (err) {
                        E.l(err);
                    } else {
                        E.l("save workd");
                    }
                });

                User.update(user.id, userObj, function userTokenUpdated (err) {
                    E.l(user['id']);
                    E.l(JSON.stringify(userObj));
                    if (err) {
                        return res.redirect('/user/forgot');
                    }
E.l("here6");

                }); 

                MailService.SendMail({ to: user['email'], subject: 'Password Reset', 
                    body: 'Click on http://' + req.headers.host + '/user/validateforgot?e=' + user['email'] + '&t=' + userObj['lostpasswordtoken']});

                    res.view();               
                E.l("here8");
            });
E.l("here9");

【问题讨论】:

    标签: orm model sails.js


    【解决方案1】:

    我不知道你用的符号,我一般用这个:

    User.update(user.id, userObj).exec(function(err, user)
    {
        if(err)//error
        ....
    });
    

    【讨论】:

    • 调用函数主要有两种方式... User.update(id, options, callback) 和 User.update(id, options).exec(callback)。我在整个代码中都使用了这两种方法,当时是谨慎的。但是,我只是尝试了这个,因为我很绝望,而且正如预期的那样,它没有触发更新。谢谢!
    • 你在控制台上没有错误?也许您已经对数据库进行了一些修改并需要清除它?
    • jaumard,我想知道是不是这样。这很奇怪。我没有错误,我将我的配置设置为更改。我知道我有访问权限,因为我可以创建一个新用户,所以我已经确认可以访问数据库表。我已经添加了所有这些控制台日志,并且只有那些不会触发的日志在更新中。我知道我做得对,但有些地方不对劲。
    • 天哪。我是个白痴。在模型中。我正在研究密码重置功能并在模型中进行了 beforeUpdate,但我没有意识到我必须验证和加密密码的之前更新显然阻止了对任何其他字段的更新。感谢您为我指明正确的方向,jaumard!
    • ^^ 很高兴您找到了解决方案! :)
    猜你喜欢
    • 2014-02-01
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-13
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多