Sequelize 模型的编程默认值
Programmatic default value for Sequelize model
如何创建在创建 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
});
如果你能指出正确的方向,我将不胜感激。
你可以直接将defaultValue定义为函数,sequelizejs在http://docs.sequelizejs.com/en/v3/api/datatypes/中解释,示例代码是
sequelize.define('model', {
uuid: {
type: DataTypes.UUID,
defaultValue: function() {
return generateMyId()
},
primaryKey: true
}
})
但是,您无法获取实例,因为在生成 defaultValue 之前我们没有实例。
如何创建在创建 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
});
如果你能指出正确的方向,我将不胜感激。
你可以直接将defaultValue定义为函数,sequelizejs在http://docs.sequelizejs.com/en/v3/api/datatypes/中解释,示例代码是
sequelize.define('model', {
uuid: {
type: DataTypes.UUID,
defaultValue: function() {
return generateMyId()
},
primaryKey: true
}
})
但是,您无法获取实例,因为在生成 defaultValue 之前我们没有实例。