2016-06-26 65 views
0

我正在使用带有Sequelize的bcrypt-nodejs。我想之前的客户对象持久化到数据库哈希客人的密码,但无法弄清楚,为什么这不保存到我的数据库:无法在Sequelize挂钩内保存

Guest.beforeCreate(function(guest) { 
    bcrypt.genSalt(10, function(error, salt) { 
    if (error) { return error } 
    bcrypt.hash(guest.password, salt, null, function(error, hash) { 
     if (error) { return error } 
     guest.password = hash; 
    }) 
    }) 
}); 

然而,这并不:

Guest.beforeCreate(function(guest) { 
    guest.password = "something"; 
}); 

谢谢。

回答

0

认识到Sequelize提供了一个.save()方法。

这就是现在的工作,并一直持续到数据库:

Guest.beforeCreate(function(guest) { 
    bcrypt.genSalt(10, function(error, salt) { 
    if (error) { return error } 
    bcrypt.hash(guest.password, salt, null, function(error, hash) { 
     if (error) { return error } 
     guest.password = hash; 
     guest.save(); // Added this line to get it to save. 
    }) 
    }) 
});