Sequelize 1:n关联

时间:2015-04-12 15:21:51

标签: sequelize.js

我有以下表格:

--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

我希望在查询中将每个电缆部件检索为数组/对象。 我试过以下关系:

@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.

1 个答案:

答案 0 :(得分:1)

throughbelongsToMany适用于n:m关联。 through指定了连接表,因此在您的情况下不需要它。

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