Sequelize模型的编程默认值

时间:2015-07-11 20:39:21

标签: sequelize.js

如何创建在创建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
});

如果你能指出我正确的方向,我们将不胜感激。

2 个答案:

答案 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"
 }
}