HTTPメソッドルート(get、put、post ...)を使用してデータにアクセスし、処理する方法を理解しようとしています。これまでは、JSONデータをフェッチしてグローバル変数に格納することができました。Expressで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がそのポケモンの数(JSONでpokedataと呼ばれている)XXXに関するいくつかのデータをhttp://localhost:3000/pokemon/XXX/
ことを得る応答を送信したかったです。しかし、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
が急行ドキュメントに関連する何かを見つけるように見えることはできません。どんな援助も好評です。
pokedataの構造は何ですか?このエラーから、配列ではなくオブジェクトであるように見えます。 'for .. of'ループはオブジェクトに対しては機能しません。配列はもっとも使い慣れたものです。 –
' '' fetch'''はいつ呼びますか?あなたが '' 'app.get'''の' 'console.log'''の' 'pokedata'''を見た場合、どうなっていますか? '{ポケモン:このような – Wainage
@Wainage [{ID:1、 NUM: '001'、 名: 'フシギダネ' IMG「http://www.serebii.net/pokemongo/pokemon /001.png」 タイプ:[オブジェクト]、 高さ: '0.71メートル' 重量: '6.9キロ' キャンディ: 'フシギダネキャンディ'、 candy_count:25、 卵 '2キロ'、 spawn_chance:0.69、 avg_spawns:69、 spawn_time:'20:00' 、 乗数:[オブジェクト]、 弱点:[オブジェクト]、 next_evolution:[オブジェクト]}、 {id:2、 num: '002'、 名前: 'Ivysaur'、...]} ' – danielsto