Node.js中的模型文件不会考虑configuration

我有这样的模型文件,如下所示:

'use strict' module.exports = function (sequelize, DataTypes) { let User = sequelize.define('user', { id: { type: DataTypes.INTEGER(11), allowNull: false, primaryKey: true, autoIncrement: true } }, { classMethods: { associate: function(models) { this.belongsToMany(models.role, { through: { model: 'user_role' }, foreignKey: 'user_id' }) } } }, { tableName: 'user', timestamps: false, underscored: true } ) return User } 

当我尝试在这个模型上做任何查询时,我得到一个错误, SequelizeDatabaseError: Table 'sc.users' doesn't exist 。 数据库users确实不存在,其名称是user 。 我在模型中添加了关于它的信息( tableName: 'user' )。

我不明白为什么sequelize不读取我的configuration选项。 我应该如何准备我的模型文件,以便sqeuelize可以从中读取configuration?

就我个人而言,我从来没有使用表名覆盖,但据我可以从这里和这里的文档和testing看到,你也需要设置freezeTableNametrue ,以便使用你的模型的表名,所以现在你的模型看起来像:

 'use strict' module.exports = function (sequelize, DataTypes) { let User = sequelize.define('user', { id: { type: DataTypes.INTEGER(11), allowNull: false, primaryKey: true, autoIncrement: true } }, { classMethods: { associate: function(models) { this.belongsToMany(models.role, { through: { model: 'user_role' }, foreignKey: 'user_id' }) } } }, { freezeTableName: true, tableName: 'user', timestamps: false, underscored: true }) return User }