【问题标题】:Programmatic default value for Sequelize modelSequelize 模型的编程默认值
【发布时间】:2017-02-19 11:40:29
【问题描述】:

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

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

【问题讨论】:

    标签: sequelize.js


    【解决方案1】:

    你可以将defaultValue定义为函数,sequelizejs在http://docs.sequelizejs.com/en/v3/api/datatypes/中解释,示例代码是

    sequelize.define('model', {
      uuid: {
        type: DataTypes.UUID,
        defaultValue: function() {
          return generateMyId()
        },
        primaryKey: true
      }
    })
    

    但是,您无法获取实例,因为在生成 defaultValue 之前我们没有实例。

    【讨论】:

    • @MuhammadUmer 你必须确保它是独一无二的。
    • @cattail 如果我要添加一列怎么样,因此该实例已经可用。我可以将不同列的值设置为defaultValue吗?
    猜你喜欢
    • 2022-09-25
    • 2020-01-02
    • 2018-10-22
    • 2015-12-31
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    • 2022-06-17
    • 1970-01-01
    相关资源
    最近更新 更多