在 Sequelize 中定义模型的不同方法
Posted
技术标签:
【中文标题】在 Sequelize 中定义模型的不同方法【英文标题】:Different ways to define models in 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
中定义模型及其字段?
【问题讨论】:
【参考方案1】:出于我开始构建的静态代码分析实用程序的目的,我假设始终使用define()
方法来定义模型。
您应该考虑的唯一一件事是定义模型字段的一般方法有两种:
隐式,短版:
sequelize.define('Locale',
locale: DataTypes.STRING
);
显式,更长,但更具扩展性和可读性(“显式优于隐式”):
sequelize.define('Locale',
locale:
type: DataTypes.STRING
);
当需要在模型字段上指定其他选项(如 defaultValue
或 unique
)时,较长的语法也会有所帮助。
真正帮助我更好地理解如何定义和组织 Sequelize
模型的是 Code Cast 的 Sequelize
tutorial 系列。
【讨论】:
以上是关于在 Sequelize 中定义模型的不同方法的主要内容,如果未能解决你的问题,请参考以下文章
sequelize-typescript:模型中get()的通用方法