我使用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),或者我为什么要导出第二个。
答案 0 :(得分:2)
没有区别。在库源代码中,所有数据类型对象都引用DataTypes中的同一组对象:
const DataTypes = require('./data-types');
…
for (const dataType in DataTypes) {
Sequelize[dataType] = DataTypes[dataType];
}
…
module.exports = Promise.Sequelize = Sequelize;
就个人而言,我建议使用DataTypes选项。对我来说,它似乎在语义上更正确。