我以前使用的模型定义配方非常类似于the one from Sequelize documentation,其中模型定义用工厂函数包装以提供给sequelize.import
:
module.exports = (sequelize, DataTypes) => {
return sequelize.define('SomeModel', {
field: DataTypes.STRING(100)
});
};
这个结构对我有用,但从模块中导出包装函数并不总是方便的(例如,当它导出一个使用DataTypes
但不应该导入sequelize.import
的基本模型的类时)。
对于数据类型Sequelize
与DataTypes
,DataTypes.STRING
与Sequelize.STRING
是完全可互换的,因此可以省略工厂函数吗?
可以DataTypes
依赖于sequelize
实例中选择的方言,因此首选?
答案 0 :(得分:3)
是Sequelize可与数据类型的DataType完全互换。
此外,数据类型是根据方言映射的,但它们会添加到Sequelize类中,因此您可以使用