Sequelize 1:n 协会

Sequelize 1:n association

我有以下表格:

--Cable--
|id|name|

--Cable_Part--
|id|fk_cable|data|

数据示例为:

Cable:
1 - Cable One

Cable_Part:
1 - 1 - Some data
2 - 1 - More data
3 - 1 - Even more data

我希望在我的查询中检索这些电缆部件中的每一个作为 array/object。 我试过以下关系:

@Model.Cable.belongsToMany @Model.CablePart,
{
    through: 'cable_part'
    foreignKey: 'cable'
}

我收到此错误:

Possibly unhandled Error: CablePart (CablePart) is not associated to Cable!

此外,hasMany 似乎已被弃用,因为如果我尝试使用它会收到此消息

Using 2 x hasMany to represent N:M relations has been deprecated. Please use belongsToMany instead

我相信这个关联应该很容易建立,但似乎无论我尝试做什么都不起作用。

我正在尝试执行的查询:

  that.Database.Model.Cable.all(
    include:
      [
        {
          model: that.Database.Model.CablePart
          as: 'CablePart'
        }
      ]

  ).then (cables)->

编辑: 这是 1:n 而不是 n:m,使用下面的映射仍然会报错:

@Model.CablePart.belongsTo @Model.Cable,
{
    foreignKey: 'cable'
}
@Model.Cable.hasMany @Model.CablePart,
{
    foreignKey: 'cable'
}

错误是:

Possibly unhandled Error: Include unexpected. Element has to be either a Model, an Association or an object.

throughbelongsToMany 用于 n:m 关联。 through 指定联接 table,因此您的情况不需要它。

Include unexpected 错误表明 that.Database.Model.CablePart 可能未定义。此外,删除包含的 as 部分 - 仅当您在关联

上指定 as 时才需要