0
我想在创建帐户后向列添加值,我想从模型的实例方法执行此操作。我以典型的方式在服务中创建帐户,并且我想使用由sequelize生成的用户id连接到另一个生成的ID,该ID也存储在每个用户的Users表中。我基本上是想调用实例方法一旦创建了用户,如下所示:Sequelize:有没有办法从实例方法更新值
型号:
module.exports = function(sequelize) {
let User = sequelize.define('User', {
email: ORM.STRING,
password: ORM.STRING,
accountVerified: {
type: ORM.INTEGER,
defaultValue: 0
}
},
{
classMethods: {
hashPassword: function(password) {
return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null);
}
},
instanceMethods: {
validatePassword: function(password) {
return bcrypt.compareSync(password, this.password);
},
uniqueId: function() {
let ch = this.id + sid.generate();
this.userId = this.id + sid.generate();
}
}
});
return User;
};
服务:
findOrCreate(email, password, done) {
let cachedEmail = email;
this.models.User
.findOrCreate({
where: { email: email },
defaults: {
password: this.models.User.hashPassword(password)
}
})
.spread(function(user, created) {
if (!created) {
return done(null, false, {
email: cachedEmail,
message: `Email ${cachedEmail} already exists.`
});
}
user.uniqueId();
done(null, user);
});
}
谢谢。我认为它更高效,因此生成了UUID。然而,你的答案对我来说是一个很好的学习经验,我相信迟早会出现一个用例。 – Aaron