gpt4 book ai didi

node.js - sequelize 卡在嵌套的急切查询中

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

我有三个模型:

  • 地点
  • 访客
  • 门票

在我的初始化中,我有这些关联:

Location.hasMany(Visitor,{as:'visitors'});
Location.hasMany(Ticket,{as:"tickets"});

Visitor.belongsTo(Location);
Visitor.hasMany(Ticket,{as:"tickets"});

Ticket.belongsTo(Visitor);
Ticket.belongsTo(Location);

下面的查询工作正常:

  Location.findAll({
attributes:['id','name'],
include:[
{
model: Visitor,
as:'visitors',
attributes: ["id"],
},
]
})

现在,如果我在访客中包含门票 ...

  Location.findAll({
attributes:['id','name'],
include:[
{
model: Visitor,
as:'visitors',
attributes: ["id"],
include:{
model:Ticket,
as:'tickets',
attributes:["id"],
}
},
]
})

或者如果我在 Location 中包含 Tickets ...

  Location.findAll({
attributes:['id','name'],
include:[
{
model: Visitor,
as:'visitors',
attributes: ["id"],
},
{
model: Ticket,
as: 'tickets',
}
]
})

...查询挂起并且不会返回,即 findAll() 返回的 Promise 不会解析。

任何想法将不胜感激。我正在为此挠头。顺便说一句,根据 package.json,我的 Sequelize 版本是 5.21.5。干杯,安德烈亚斯

最佳答案

我在第 715 行将其归结为 sequelizer 的 model.js。 enter image description here此处生成的消息是“访客未与访客关联!”。但是,我不明白 Sequelizer 是如何得出这种理解的,以及它为什么会导致错误。顺便说一句,错误没有浮出水面,我不知道为什么。它被升级到 bluebird 的 util.js 而不是我在 Promise-chain 中的 catch()。

关于node.js - sequelize 卡在嵌套的急切查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60912069/

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