Ассоциация с продолжением - PullRequest
0 голосов
/ 28 апреля 2020

Я новичок в 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"}}]

Моя проблема заключается в следующем:

при попытке получить доступ к объекту города я получаю undefined

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']
     })
   }

1 Ответ

0 голосов
/ 28 апреля 2020

Вы можете получить доступ к city следующим образом -

data[0].dataValues.city.dataValues.city

Надеюсь, это поможет!

...