Node.js Sequelize不';在重构之后,我不会读取新的modelname(在end modelname中删除s)
我有一个内置于Express的后端应用程序,带有Sequelize ORM。 这是我的密码 user.js(模型) user.js(控制器): 当我启动项目时,它返回错误Node.js Sequelize不';在重构之后,我不会读取新的modelname(在end modelname中删除s),node.js,express,sequelize.js,Node.js,Express,Sequelize.js,我有一个内置于Express的后端应用程序,带有Sequelize ORM。 这是我的密码 user.js(模型) user.js(控制器): 当我启动项目时,它返回错误未处理的拒绝SequelizeDatabaseError:关系“users”不存在。正如您在上面看到的代码一样,我已经将模型设置为usernotusers,数据库中的表也设置为usernotusers。只有在模型文件中添加tableName:'user',它才能正常工作 注意:默认情况下,当我使用sequelize创建模型时,文
未处理的拒绝SequelizeDatabaseError:关系“users”不存在
。正如您在上面看到的代码一样,我已经将模型设置为user
notusers
,数据库中的表也设置为usernotusers。只有在模型文件中添加tableName:'user'
,它才能正常工作
注意:默认情况下,当我使用sequelize创建模型时,文件名和模型定义为users
,但我将文件名和内部模型定义为user
为什么会发生这种情况?这是-Sequelize
自动将型号名称转换为复数。为了禁用该功能,您应该在模型定义中冻结表名(或者像实际操作一样显式设置表名):
'use strict';
module.exports = (sequelize, DataTypes) => {
const user = sequelize.define('user', {
username: DataTypes.STRING,
}, {
// tableName: 'user'
});
user.associate = function(models) {
// associations can be defined here
};
return user;
};
const User = require('../models').user;
module.exports = {
getUser: function (req, res) {
User.findAll().then(value => {
res.json(value);
})
}
}
freezeTableName: true,