【问题标题】:Sequelize associate not createdSequelize 关联未创建
【发布时间】:2018-02-06 10:45:14
【问题描述】:

一个非常简单的问题。我正在使用nodejs 5.6,表达4和续集4。在程序中,我有一个属于company对象的user对象。

var User = sequelize.define('user', {
    username: {
        type: Sequelize.STRING
    },
    password: {
        type: Sequelize.STRING
    }
});

const Company= sequelize.define('companny', {
    record: {
        type: Sequelize.JSON
    }
});

Company.associate = function(models) {
    console.log(models)
    Company.hasMany(models.User, {
        foreignKey: {
            // name: 'user',
            allowNull: true
        }
    })
}

运行程序时,数据库是用user和company表创建的,但是8个user或company中没有外键。控制台什么也没输出。有什么建议吗?

【问题讨论】:

    标签: node.js sequelize.js


    【解决方案1】:

    最后,index.js 文件here 回答了我的问题。

    【讨论】:

      【解决方案2】:

      我通常会使用这种方法来创建我的模型:

      // User model
      export default (sequelize, DataTypes) => {
        const User = sequelize.define('User', {
          email: {
            allowNull: false,
            type: DataTypes.STRING,
            unique: true
          },
          password: {
            allowNull: false,
            type: DataTypes.STRING,
          }
        });
      
        return User;
      };
      
      // Company model
      export default (sequelize, DataTypes) => {
        const Company = sequelize.define('Company', {
          record: {
              type: DataTypes.JSON
          }
        });
      
        Company.associate = (models) => {
          console.log(models)
          Company.hasMany(models.User, {
              foreignKey: 'userId'
          })
        }
      
        return Company;
      };
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-21
        • 1970-01-01
        • 1970-01-01
        • 2019-09-23
        • 2016-04-11
        • 2019-04-16
        • 2019-12-12
        相关资源
        最近更新 更多