APIに単一のhttpsリクエストを送信しようとしています。多数のデータがJSON形式で送信されています。node JSON httpsリクエストが未定義になる
しかし、コードを実行すると、まずすべてが定義されていないという問題が発生しました。私は自分のループをコメントアウトし、必要なデータを解析しようとしましたが、今はすべてのデータをconsole.logにしようとしています。
しかし、私のコードのどこにでもループを持たないにもかかわらず、何とか何とかループしているようです。ここ
は私の要求のためのコードです:
function getCards() {
// make a request
var options = {
host: 'omgvamp-hearthstone-v1.p.mashape.com',
path: '/cards',
method: 'GET',
};
var req = https.request(options, function(res) {
console.log('STATUS ' + res.statusCode);
console.log('HEADERS ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function(data) {
//console.log(data);
updateCardsCollection(JSON.stringify(data));
});
});
req.on('error', function(e) {
console.log('problem with request: ' + e.message);
});
req.end();
}
奇妙なことは、上記のコードではconsole.log(データ)は、うまくデータをすべてログアウトしていることです。
function updateCardsCollection(data) {
var cardsRaw = [];
console.log("DATA");
console.log("===========================================================");
console.log(data.Classic);
}
ここで、「クラシック」は、API内のオブジェクトの配列の1つです。
node、express、mongoose、jadeを実装する前に。次のループは正常にデータを解析しています:
for(var key in data) {
for(var i = 0; i < data[key].length; i++) {
console.log(data[key][i].cardId);
しかし、ループの上記の開始でも、定義されていないエラーが出力されます。
私がこのコードを持っているように見える別の奇妙な問題は、 'updateCardsCollection'機能の3つのconsole.logを使ってループを実行して実行したときです。それらの3行を何度も記録します。この機能は一度しか呼び出されていません。
このコードがAPIデータを取得するために機能しなくなった理由は何ですか?
これは素晴らしい仕事を!ありがとうございました。 誰かがこの質問につまずく場合。上記のコードには、2つの括弧が欠落しています。 'data.join(' '))))*)の後に4があり、最後の中括弧の後に1つあります。それ以外は完全に動作します! – MLyck