在定义模型时,我应该使用Sequelize还是DataType?

时间:2016-08-28 02:32:49

标签: javascript mysql node.js express sequelize.js

我使用Sequelize在Node-Express应用程序中处理MySQL数据库。我试图按照文档定义教师模型,但我发现有两种可能的选择。第一个意味着做

var Teacher = sequelize.define('Teacher', {
  firstname: Sequelize.STRING,
  lastname: Sequelize.STRING})

另一个选择是

export default function(sequelize, DataTypes) {
  var Teacher = sequelize.define('Teacher', {
  firstname: DataTypes.STRING,
  lastname: DataTypes.STRING})

我不知道这两者之间是否存在差异(Sequelize和DataTypes),或者我为什么要导出第二个。

1 个答案:

答案 0 :(得分:2)

没有区别。在库源代码中,所有数据类型对象都引用DataTypes中的同一组对象:

const DataTypes = require('./data-types');

…

for (const dataType in DataTypes) {
   Sequelize[dataType] = DataTypes[dataType];
}

…

module.exports = Promise.Sequelize = Sequelize;

就个人而言,我建议使用DataTypes选项。对我来说,它似乎在语义上更正确。