续写属于并包含

Kat*_*oak 4 node.js sequelize.js

我很难在查询中使用 BelongsTo 关系。

这是关系:

models.Area.hasMany(models.Airport);
models.Airport.belongsTo(models.Area, {foreignKey: 'areaId', as: 'area'});
Run Code Online (Sandbox Code Playgroud)

现在我尝试运行一个查询:

models.Airport
    .findAll( {
        where: { active: 1 },
        include: { model: models.Area }
        })
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

   Error: area is not associated to airport!
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Kat*_*oak 5

我想到了。我不能说我完全理解这个问题,但就是这样。

创建关系时,我使用 as:'area'。

结果是,我需要将 as: 'area' 添加到 include 语句中:

models.Airport
.findAll( {
    where: { active: 1 },
    include: { model: models.Area, as: 'area' }
    })
Run Code Online (Sandbox Code Playgroud)

一旦两者匹配,事情就会变得更好。