问题描述
在我的控制台中:
[ CampaignStrategy {
id: 248,id_mm: 828419,strategy_name: "norhart_Encore_AUD",impressions: 7623,clicks: 13,TEST_PROPERTY: '222222',ordered_impressions:
Orderedimpression { ordered_impressions: '123',id: 7,strategy_id: 248 }
},...
]
浏览器(XHR)中收到的响应对象:
[
{
"id": 248,"id_mm": 828419,"strategy_name": "norhart_Encore_AUD","impressions": 7623,"clicks": 13,},...
]
请注意,TEST_PROPERTY
和ordered_impressions
在后者中不存在。我究竟做错了什么?
这是我的控制器逻辑:
@get('/campaignStrategies/{id}')
async findStrategies(
@param.path.number('id') id: number,): Promise<any> {
const campaignStrats = await this.campaignStrategyRepository.find({
where: {
campaignId: id
}
});
const campaignStratsIds = campaignStrats.map(strat => {
return { strategy_id: strat.id }
});
const campaignSettings = await this.orderedimpressionRepository.find({
where: {
or: campaignStratsIds
}
});
const settingsTable = await campaignSettings.reduce((acc: any,setting: any) => {
acc[setting.strategy_id] = setting;
return acc;
},{});
const fullData = campaignStrats.map((strat: any) => {
strat['TEST_PROPERTY'] = '222222'
strat['ordered_impressions'] = settingsTable[`${strat.id}`];
return strat;
});
console.log(fullData);
return fullData;
}
解决方法
您应该尝试:
const fullData = campaignStrats
.map((strat: any) => {
return {...strat,TEST_PROPERTY: 2222 /* and so on /* }
}
通过这种方式,您返回的对象不同于campaignStrats
列表中的对象。
PS:我不确定,console.log
为什么向我们展示了错误的响应思想,也许有人会在此处发表评论或编辑。