我有以下型号:
sequelize.define("User", {
id: {
type: DataTypes.INTEGER(11),
autoIncrement: true,
primaryKey: true
},
email: {
type: DataTypes.STRING(255),
allowNull: false,
unique: true,
},
password: {
type: DataTypes.STRING(60),
allowNull: false
},
role: {
type: DataTypes.STRING(32),
allowNull: false,
defaultValue: 'user',
}
},{
instanceMethods: {
verifyPassword: function(password,cb) {
crypt.compare(password,this.password,cb);
},
},
hooks: {
beforeUpdate: hashPassword,
beforeCreate: hashPassword,
}
});
我想在忽略beforeUpdate / Create挂钩的同时创建它:
User.create({ email: 'admin@render.ly', role: 'admin', password: '############' },['email','password','role']).done(function(err,admin){ ... })
如何?
答案 0 :(得分:1)
您可以这样做:
return User.findOrCreate({
where: {email: "admin@render.ly"},
defaults: {
email: "admin@render.ly",
role: "admin",
password: "pyxBOZUNYNZCegyhthKCR9hWpgYO"
},
hooks: false //this will ignore hooks
})
答案 1 :(得分:0)
我开始自己使用Sequelize,这可能是一个迟到的答案,但您没有在模型定义中声明您的钩子,而是尝试使用文档中描述的.hook()
方法或直接方法{ {3}},基于与您定义的角色相关联的条件?
你最终使用了什么?