gpt4 book ai didi

node.js - 调用关联模型时出现 Sequelizejs 错误

转载 作者:行者123 更新时间:2023-12-03 22:37:42 25 4
gpt4 key购买 nike

我正在使用 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;

这是我如何将 prupose 与其他表相关联
PurposeList.belongsToMany(User, { through: PurposeUser });
User.hasMany(LifeArea);

当我获取表或添加 include: [ { model: PurposeUser, as: 'projects' } ], 时出现此错误 purposeUser is not associated to purpose!
我在 Angular 7 中使用它。

我不确定这是否与 Angular 有关,或者我使用了错误的东西。
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));
}```

最佳答案

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

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

您还需要在那里分配一些外键值,因为您可能在目的用户中命名了您的列 purpose_id 和 user_id...您在那里有目的列表,但您将其导出为目的,因此如果您出于某种原因重命名这些内容,那么我可以'没看到...

关于node.js - 调用关联模型时出现 Sequelizejs 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56631848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com