【问题标题】:Different ways to define models in Sequelize在 Sequelize 中定义模型的不同方法
【发布时间】:2016-06-16 01:26:45
【问题描述】:

动机:

我正在研究Sequelize 并考虑构建一个ESLint 插件来捕获常见的Sequelize 特定代码样式违规(当然可以静态捕获)。

我正在考虑实施的规则之一(感谢@janmeier)是对每个模型字段强制使用type。据我了解,define() 是一种非常常见的模型定义方式:

sequelize.define('Locale', {
    id: {
        type: DataTypes.INTEGER,
        autoIncrement: true,
        primaryKey: true
    },
    locale: {
        type: DataTypes.STRING,
        allowNull: false
    }
});

问题:

有没有其他方式Sequelize中定义模型及其字段?

【问题讨论】:

    标签: javascript database orm model sequelize.js


    【解决方案1】:

    出于我开始构建的静态代码分析实用程序的目的,我假设始终使用define() 方法来定义模型。

    您应该考虑的唯一一件事是定义模型字段的一般方法有两种

    • 隐式,短版:

      sequelize.define('Locale', {
          locale: DataTypes.STRING
      });
      
    • 显式,更长,但更具扩展性和可读性(“显式优于隐式”):

      sequelize.define('Locale', {
          locale: {
              type: DataTypes.STRING
          }
      });
      

    当需要在模型字段上指定其他选项(如 defaultValueunique)时,较长的语法也会有所帮助。

    真正帮助我更好地理解如何定义和组织 Sequelize 模型的是 Code Cast 的 Sequelize tutorial 系列。

    【讨论】:

      猜你喜欢
      • 2020-02-03
      • 2020-01-20
      • 2019-03-19
      • 1970-01-01
      • 2021-05-05
      • 2017-12-06
      • 2019-05-25
      • 2017-07-12
      • 1970-01-01
      相关资源
      最近更新 更多