动机:
我正在研究Sequelize
并考虑构建一个ESLint
插件来捕捉常见的Sequelize
特定代码风格违规(可以静态捕获,疗程)。
我想要实施的一条规则(感谢@janmeier)是强制每个模型字段都有type
。据我所知,define()
是定义模型的一种非常常见的方式:
sequelize.define('Locale', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
locale: {
type: DataTypes.STRING,
allowNull: false
}
});
问题:
是否有其他方式在Sequelize
中定义模型及其字段?
答案 0 :(得分:0)
出于静态代码分析实用程序的目的,我已经开始构建,我假设define()
方法始终用于定义模型。
您唯一应该考虑的是 2种定义模型字段的一般方法:
隐式,简短版本:
sequelize.define('Locale', {
locale: DataTypes.STRING
});
显式,更长,但更具可扩展性和可读性("显式优于隐式"):
sequelize.define('Locale', {
locale: {
type: DataTypes.STRING
}
});
如果需要在模型字段中指定其他选项,例如defaultValue
或unique
,则较长的语法也会有所帮助。
实际帮助我更好地理解如何定义和组织Sequelize
模型的是Code Cast的Sequelize
tutorial系列。