我在Sequelize中使用了bcrypt-nodejs。我在尝试在将guest虚拟机对象持久保存到数据库之前散列访客的密码,但无法弄清楚为什么这不会保存到我的数据库中:
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 :(得分: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.
})
})
});