我是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
希望它能有所帮助!