Sequelize belongsToMany:TypeError:无法读取未定义的属性'hasBrand'

时间:2017-08-28 09:50:30

标签: javascript node.js postgresql associations sequelize.js

我有用户品牌模型。

用户可以拥有多个品牌。

品牌可以属于许多用户。

我为多对多关联定义了另一个模型。它命名为 UserBrand

    // user.js
    const User = sequelize.define('User', {
        id: {
            type: DataTypes.UUID,
            defaultValue: DataTypes.UUIDV4,
            primaryKey: true,
        },
        hasBrand: {
            type: DataTypes.BOOLEAN,
            defaultValue: false,
        },
    })

    User.associate = models=> {
        User.belongsToMany(models.Brand, {
            through: models.UserBrand,
            foreignKey: 'user',
        })
    }

    // brand.js
    Brand.belongsToMany(models.User, {
        through: models.UserBrand,
        foreignKey: 'brand',
    })

    // userBrand.js
    const UserBrand = sequelize.define('UserBrand', {
        status: {
            type: DataTypes.INTEGER,
            allowNull: false,
        },
        title: {
            type: DataTypes.STRING,
            defaultValue: '',
        },
    })

    UserBrand.associate = models=> {
        UserBrand.belongsTo(models.User, { foreignKey: 'user', targetKey: 'id' })
        UserBrand.belongsTo(models.Brand, { foreignKey: 'brand', targetKey: 'id' })
    }

当我运行我的应用程序时,它会显示TypeError: Cannot read property 'hasBrand' of undefined。我找不到 hasBrand association 之间的任何关系,但删除 hasBrand 它的工作原理

如果我仍想保留 hasBrand 字段,我该如何解决?

0 个答案:

没有答案