如何创建在创建Sequelize模型的新实例时以编程方式生成的默认值?我已经阅读了如何在某个地方执行此操作,但无法在任何地方找到它。我认为这与classMethods
有关,但我无法弄清楚该方法应该被称为什么。
例如:
sequelize.define('Account', {
name: DataTypes.STRING
}, {
classMethods: {
something: function (instance) {
instance.name = 'account12345';
}
}
});
models.account.create(function (account) {
console.log(account.name); // Echos "account12345" or whatever I
});
如果你能指出我正确的方向,我们将不胜感激。
答案 0 :(得分:6)
您可以将defaultValue定义为函数,sequelizejs在http://docs.sequelizejs.com/en/v3/api/datatypes/中解释,示例代码为
sequelize.define('model', {
uuid: {
type: DataTypes.UUID,
defaultValue: function() {
return generateMyId()
},
primaryKey: true
}
})
但是,你无法获取实例,因为在生成defaultValue之前我们没有实例。
答案 1 :(得分:-2)
只需在模型属性中添加defaultValue字段,如下所示:
sequelize.define('Account', {
name: {
type : DataTypes.STRING,
defaultValue : "account12345"
}
}