Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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
Mysql sequelize提供了错误的表名_Mysql_Node.js_Rest_Express_Sequelize.js - Fatal编程技术网

Mysql sequelize提供了错误的表名

Mysql sequelize提供了错误的表名,mysql,node.js,rest,express,sequelize.js,Mysql,Node.js,Rest,Express,Sequelize.js,我有一个数据库。其中我有一个“user”表 我正在尝试使用sequelize创建我的第一个RESTapi 但是,当它执行我的查询时,我在控制台中得到以下信息: SELECT `id`, `username`, `password`, `name`, `organization_id`, `type_id`, `join_date` FROM `users` AS `user` WHERE `user`.`id` = '1'; 如您所见,它尝试使用名为users的表,但该表不存在 以下是我的一些

我有一个数据库。其中我有一个“
user
”表

我正在尝试使用sequelize创建我的第一个
REST
api

但是,当它执行我的查询时,我在控制台中得到以下信息:

SELECT `id`, `username`, `password`, `name`, `organization_id`, `type_id`, `join_date` FROM `users` AS `user` WHERE `user`.`id` = '1';
如您所见,它尝试使用名为
users
的表,但该表不存在

以下是我的一些代码:

如果您需要更多,请告诉我我不确定哪里出了问题

    var User = sequelize.define('user', {
    id: DataTypes.INTEGER,
    username: DataTypes.STRING,
    password: DataTypes.STRING,
    name: DataTypes.STRING,
    organization_id: DataTypes.INTEGER,
    type_id: DataTypes.INTEGER,
    join_date: DataTypes.STRING

}, {
    instanceMethods: {
        retrieveAll: function(onSuccess, onError) {
            User.findAll({}, {raw: true})
                .ok(onSuccess).error(onError);
        },
        retrieveById: function(user_id, onSuccess, onError) {
            User.find({where: {id: user_id}}, {raw: true})
                .success(onSuccess).error(onError);
        },
        add: function(onSuccess, onError) {
            var username = this.username;
            var password = this.password;

            var shasum = crypto.createHash('sha1');
            shasum.update(password);
            password = shasum.digest('hex');

            User.build({ username: username, password: password })
                .save().ok(onSuccess).error(onError);
        },
        updateById: function(user_id, onSuccess, onError) {
            var id = user_id;
            var username = this.username;
            var password = this.password;

            var shasum = crypto.createHash('sha1');
            shasum.update(password);
            password = shasum.digest('hex');

            User.update({ username: username,password: password},{where: {id: id} })
                .success(onSuccess).error(onError);
        },
        removeById: function(user_id, onSuccess, onError) {
            User.destroy({where: {id: user_id}}).success(onSuccess).error(onError);
        }
    }
});

我以前没有使用过sequelize,但从他们的文档中可以看出-可能您缺少了-

User.sync({force:true})。然后(函数(){
//创建的表
返回User.create({
名字:“约翰”,
姓:“汉考克”
});
});

i、 e.表格创建部分


谢谢

要解决您的问题,您需要在options对象中设置freezeTableName=true

e、 g


不是使用表“user”,而是创建一个名为“users”的表,这只是为了澄清,“user”表实际上已经存在于数据库中了吗?您是手动创建的还是Sequelize创建的?@HeadCode用户表存在于我的数据库中,是手动创建的,已经包含大量数据。我没有意识到这一点,但“user”看起来是一个保留关键字。我不能说这会给你带来问题,但是看看这篇帖子:哇,我已经很接近解决这个问题了,我只是把那句话插错了地方谢谢!感谢您为我们指出了正确的方向,但上面的实际语法不正确:
freezeTableName=true
应该是
freezeTableName:true
    var User = sequelize.define('user', {
    id: DataTypes.INTEGER,
    username: DataTypes.STRING,
    password: DataTypes.STRING,
    name: DataTypes.STRING,
    organization_id: DataTypes.INTEGER,
    type_id: DataTypes.INTEGER,
    join_date: DataTypes.STRING

}, {
    freezeTableName: true,
    instanceMethods: {
        retrieveAll: function(onSuccess, onError) {
            User.findAll({}, {raw: true})
                .ok(onSuccess).error(onError);
        },
        retrieveById: function(user_id, onSuccess, onError) {
            User.find({where: {id: user_id}}, {raw: true})
                .success(onSuccess).error(onError);
        },
        add: function(onSuccess, onError) {
            var username = this.username;
            var password = this.password;

            var shasum = crypto.createHash('sha1');
            shasum.update(password);
            password = shasum.digest('hex');

            User.build({ username: username, password: password })
                .save().ok(onSuccess).error(onError);
        },
        updateById: function(user_id, onSuccess, onError) {
            var id = user_id;
            var username = this.username;
            var password = this.password;

            var shasum = crypto.createHash('sha1');
            shasum.update(password);
            password = shasum.digest('hex');

            User.update({ username: username,password: password},{where: {id: id} })
                .success(onSuccess).error(onError);
        },
        removeById: function(user_id, onSuccess, onError) {
            User.destroy({where: {id: user_id}}).success(onSuccess).error(onError);
        }
    }
});