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

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

希望它能有所帮助!

最新更新