Javascript mongoose预保存的bcrypt未保存

Javascript mongoose预保存的bcrypt未保存,javascript,node.js,mongodb,mongoose,bcrypt,Javascript,Node.js,Mongodb,Mongoose,Bcrypt,我对bcrypt和mongoose预保存功能有问题 我的日志告诉我,一切都很好。。。但是mongoose没有正确保存新的散列密码 do post save 6BYpYJtD POST/api/v1/user 200 26.999 ms-387 预存6BYpYJtD$2a$10$OgNaou5y8JO2v4ErcZN4v.2cG9LOPjgJKzptvrKXVgCBRrrFsMHMO 要说清楚: 6BYpYJtD是我生成的密码,2a$10$OgNaou5y8JO2v4ErcZN4v.2cG9LOP

我对bcrypt和mongoose预保存功能有问题

我的日志告诉我,一切都很好。。。但是mongoose没有正确保存新的散列密码

do post save 6BYpYJtD
POST/api/v1/user 200 26.999 ms-387
预存6BYpYJtD$2a$10$OgNaou5y8JO2v4ErcZN4v.2cG9LOPjgJKzptvrKXVgCBRrrFsMHMO

要说清楚:
6BYpYJtD
是我生成的密码,
2a$10$OgNaou5y8JO2v4ErcZN4v.2cG9LOPjgJKzptvrKXVgCBRrrFsMHMO
是我的预保存函数生成的哈希:

UserSchema.pre('save', function(next){
    var user = this;
        user.updated_at = Date.now;
    if(user.isModified('password'))
    {
        bcrypt.genSalt(SALT_WORK_FACTOR,function(err,salt){
            if(err) return next(err);
            bcrypt.hash(user.password,salt,function(err,hash){
                if(err) return next(err);
                console.log('do pre save',user.password,hash);
                user.password = hash;
                console.log(user.password);
                next();
            });
        });
    }

    return next();
});

没有打印错误,所以我真的不知道这里可能有什么错误。有什么建议吗?

几小时的调试之后,我发现了我的问题的解决方案:


更改密码信息后,需要
返回下一步(用户)以用户对象作为参数。现在它像一个符咒一样工作。

字段
密码
只有
类型的声明:String