在Sequelize

时间:2016-06-16 01:26:45

标签: javascript database orm model sequelize.js

动机:

我正在研究Sequelize并考虑构建一个ESLint插件来捕捉常见的Sequelize特定代码风格违规(可以静态捕获,疗程)。

我想要实施的一条规则(感谢@janmeier)是强制每个模型字段都有type 。据我所知,define()是定义模型的一种非常常见的方式:

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

问题:

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

1 个答案:

答案 0 :(得分:0)

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

您唯一应该考虑的是 2种定义模型字段的一般方法

  • 隐式,简短版本:

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

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

如果需要在模型字段中指定其他选项,例如defaultValueunique,则较长的语法也会有所帮助。

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