gpt4 book ai didi

javascript - Sequelize "include"不工作白色多对多关系

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

我是 Node 和 Sequelize 的新手,我正在构建一个基本的电子商务。
这些是我的 模型 :

const Product = sequelize.define('product', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
allowNull: false,
primaryKey: true,
},
name: {
type: DataTypes.STRING,
allowNull: false,
},
});

const Sale = sequelize.define('sale', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
allowNull: false,
primaryKey: true,
},
isDelivered: {
type: DataTypes.BOOLEAN,
defaultValue: false,
allowNull: false,
},
});
而这些 关系 :
Sale.belongsToMany(Product, { through: SaleItem });
Product.belongsToMany(Sale, { through: SaleItem });
当我尝试获取“SaleItems”时问题就开始了
 SaleItem.findAll({
include: [Product],
})
.then(response => {
console.log(response);
})
我得到回应:

SequelizeEagerLoadingError: product is not associated to saleItem!


这很奇怪,因为我在一对多关系上做同样的事情,并且工作得很好。
谢谢你的时间 :)

最佳答案

您在 ProductSale 之间有关联,但在它们和 SaleItem 之间没有关联。
您现有的关联让您只执行这样的查询:

Sale.findAll({
include: [Product],
})
.then(response => {
console.log(response);
})
Product.findAll({
include: [Sale],
})
.then(response => {
console.log(response);
})
您需要像这样为 SaleItem 添加关联:
SaleItem.belongsTo(Product);
SaleItem.belongsTo(Sale);
为了获得 SaleItem 记录以及关联的模型实例。

关于javascript - Sequelize "include"不工作白色多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66178033/

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