【问题标题】:Sequelizejs error when calling associated model调用关联模型时 Sequelizejs 错误
【发布时间】:2019-06-19 00:40:53
【问题描述】:

我正在使用 sequelize 连接数据库。 我已经关联了 2 个模型,但是当我得到这些模型时,它会显示错误。

这是我的模型代码

const Sequelize = require('sequelize');
const sequelize = require('../database/database');

const Purpose = sequelize.define('purpose', {
  id: {
    type: Sequelize.INTEGER,
    primaryKey: true,
    autoIncrement: true,
    allowNull: false
  },
  title: {
    type: Sequelize.STRING,
    allowNull: false
  },
  weighting: {
    type: Sequelize.STRING,
    allowNull: false
  },
  iconsUrl: {
    type: Sequelize.STRING,
    allowNull: false
  }
})

module.exports = Purpose;

这就是我如何将目的与其他表相关联

PurposeList.belongsToMany(User, { through: PurposeUser });
User.hasMany(LifeArea);

当我 getpupose 表或添加include: [ { model: PurposeUser, as: 'projects' } ], 时得到此错误purposeUser is not associated to purpose!

我在 Angular 7 中使用它。

我不确定这是否与角度有关,或者我使用的东西有误。

exports.getUserPurpose =  (req, res, next) => {

  const userID = req.userData.userId;
  const purposesList = [];
  PurposeUser.findAll({ where: {userId: userID },
    order: ['menuOrder'],
  })
  .then(results => {
    const purposeID = [];

    results.map(res => {
      purposeID.unshift(res.dataValues.purposeId);
      purposesList.unshift({id: res.dataValues.id, purposeId: res.dataValues.purposeId, weighting: res.dataValues.weighting})
    });

    return Purpose.findAll({
      include: [ { model: PurposeUser, as: 'projects' } ],
      where: {id: purposeID},
    })
  })
  .catch(err => console.log('err', err));
}```

【问题讨论】:

    标签: node.js angular sequelize.js


    【解决方案1】:

    您需要设置关系的双方...

    Purpose.belongsToMany(User, { through: PurposeUser, as: 'Users', foreignKey: 'purpose_id' });
    User.belongsToMany(, {Purpose, {through: PurposeUser, as: 'Purposes', foreignKey: 'user_id' });
    

    您还需要在其中分配一些外键值,因为您可能在 PurposeUser 中命名了您的列 purpose_id 和 user_id ...您在下面有 PurposeList 但您将其导出为 Purpose 所以如果您出于某种原因重命名了这些东西然后我看不到...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-19
      • 1970-01-01
      • 2017-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-25
      • 1970-01-01
      相关资源
      最近更新 更多