sequelize的关联

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sequelize的关联相关的知识,希望对你有一定的参考价值。

我是Node js的新手,尝试从两个相关表(省和市)获取记录时遇到问题。

一个城市有很多省(这是我的关系)

我使用此方法进行查询:

async function getProvinces ()
   {
     return await municipality.findAll ({
       include: [{
           model: city,
           required: true,
           attributes: [['name', 'city']]
       }],
       attributes: ['provinceId', 'name']
     })
   }

这将返回我:

[{"provinceId": 1, "name": "province 1", "city": {"city": "city 1"}}]

我的问题是以下:

当尝试访问城市对象时,我得到一个未定义

data [0] .city.city

为什么这样?

我需要以这种格式返回响应:

{"provinceId": 1, "name": "province 1", "city": "city 1"}

更新(示例)

const getProvincesMethod= async ()=>
{
  const value = await getProvinces()

  if(!value) return null

  var list = []

  value.forEach(item => {
    list.push(getProvinceObject(item))
  });

  return list
}

function getProvinceObject(data)
{
  if(!data) return null
  console.log(data)
  return {
    provinceId: data.provinceId,
    name: data.name,
    city: data.city.city
  }
}

async function getProvinces ()
   {
     return await municipality.findAll ({
       include: [{
           model: city,
           required: true,
           attributes: [['name', 'city']]
       }],
       attributes: ['provinceId', 'name']
     })
   }
答案

您可以如下访问city-

以上是关于sequelize的关联的主要内容,如果未能解决你的问题,请参考以下文章

Sequelize 迁移中的关联

如何在关联表Sequelize js中获取自定义字段

Sequelize - 是不是有双向关联?

Sequelize:带有关联的种子

如何在 Sequelize 中创建关联

Sequelize Find belongsToMany 关联