我一直在努力了解如何使用HTTP方法路由访问和处理数据(get,put,post ...)。到目前为止,我已经能够获取JSON数据并将其存储在全局变量中。
var pokedata;
fetch('https://raw.githubusercontent.com/Biuni/PokemonGO-Pokedex/master/pokedex.json')
.then(function (res) {
return res.json();
}).then(function (json) {
pokedata = json;
}).catch(function () {
console.log("It was not possible to fetch the data.")
});
我想将响应HTTP GET发送到http://localhost:3000/pokemon/XXX/
,其中包含有关该神奇宝贝编号XXX(在JSON中称为pokedata)的一些数据。但是,任何尝试循环遍历GET内的数据都会触发错误:
app.get('/pokemon/:pokemonid', function (req, res) {
//not the desired behaviour but a sample of what doesn't work.
for (let {name: n, weight: w, height: h} of pokedata) {
res.send(n, w, h);
}
});
TypeError: pokedata[Symbol.iterator] is not a function
似乎无法在快递文档中找到任何相关内容。任何帮助都很受欢迎。
答案 0 :(得分:3)
pokedata
是一个对象,你不想迭代它。相反,你想迭代pokedata.pokemon
,这是一个口袋妖怪的数组。因此,只需对代码进行一些小修改即可:
for (let {name: n, weight: w, height: h} of pokedata.pokemon) {
res.send(n, w, h);
}