Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Sequelize不';在重构之后,我不会读取新的modelname(在end modelname中删除s)_Node.js_Express_Sequelize.js - Fatal编程技术网

Node.js Sequelize不';在重构之后,我不会读取新的modelname(在end modelname中删除s)

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创建模型时,文

我有一个内置于Express的后端应用程序,带有Sequelize ORM。 这是我的密码

user.js(模型)

user.js(控制器):

当我启动项目时,它返回错误
未处理的拒绝SequelizeDatabaseError:关系“users”不存在
。正如您在上面看到的代码一样,我已经将模型设置为
user
not
users
,数据库中的表也设置为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,