我正在尝试从一个json文件中添加一个数组,作为对现有对象播放器的响应请求(它表示名为player的数组中的每个对象)。这将返回一个空数组。我不知道我做错了什么。我得到了响应,但是当我想将它添加到播放器对象中时,它就出错了。
有关完整的代码,请查看https://ide.c9.io/kyriediculous/learnyounode
文件: playergamelogs.js
附言:我的代码可能很糟糕,欢迎任何提示。
谢谢大家
players.forEach(function(player) {
var log = [];
var id = parseInt(player.playerId,10);
var url = "http://m.mlb.com/lookup/json/named.sport_hitting_game_log_composed.bam?game_type=%27R%27&league_list_id=%27mlb%27&player_id="+id+"&season=2016&sit_code=%271%27&sit_code=%272%27&sit_code=%273%27&sit_code=%274%27&sit_code=%275%27&sit_code=%276%27&sit_code=%277%27&sit_code=%278%27&sit_code=%279%27&sit_code=%2710%27&sit_code=%2711%27&sit_code=%2712%27";
player["gameLogs"] = log;
// console.log(id);
request.get({
url: url,
json: true,
headers: {'User-Agent': 'request'}
}, function (err, res, data) {
if (err) {
console.log('Error:', err);
} else if (res.statusCode !== 200) {
console.log('Status:', res.statusCode);
} else {
data
.sport_hitting_game_log_composed
.sport_hitting_game_log
.queryResults
.row
.forEach(function(game) {
log.push(game);
});
}
});
});返回
kyriediculous:~/workspace $ node playergamelogs
{ firstName: 'DJ',
lastName: 'LeMahieu',
playerId: '518934',
team: 'Colorado Rockies',
gameLogs: [] }发布于 2017-01-30 22:56:04
将player["gameLogs"] = log;移到get回调中,就像我的原始版本一样。
似乎从来没有什么问题,在回调完成检索数据之前,我正在进行控制台日志记录,所以在我调用console.log时,数据从未被添加到对象中
https://stackoverflow.com/questions/41926285
复制相似问题