将Sequelize和DataType用于数据类型

时间:2017-02-08 00:20:03

标签: node.js sequelize.js

我以前使用的模型定义配方非常类似于the one from Sequelize documentation,其中模型定义用工厂函数包装以提供给sequelize.import

module.exports = (sequelize, DataTypes) => {
  return sequelize.define('SomeModel', {
    field: DataTypes.STRING(100)
  });
};

这个结构对我有用,但从模块中导出包装函数并不总是方便的(例如,当它导出一个使用DataTypes但不应该导入sequelize.import的基本模型的类时)。

对于数据类型SequelizeDataTypesDataTypes.STRINGSequelize.STRING是完全可互换的,因此可以省略工厂函数吗?

可以DataTypes依赖于sequelize实例中选择的方言,因此首选?

1 个答案:

答案 0 :(得分:3)

是Sequelize可与数据类型的DataType完全互换。

https://github.com/sequelize/sequelize/blob/3e5b8772ef75169685fc96024366bca9958fee63/lib/sequelize.js

此外,数据类型是根据方言映射的,但它们会添加到Sequelize类中,因此您可以使用

https://github.com/sequelize/sequelize/blob/3e5b8772ef75169685fc96024366bca9958fee63/lib/data-types.js#L57