のプロパティを読み取ることができません。Instagram APIを使用して特定のタグを検索し、最初の結果の画像を表示しています。ここでは、JSON.parse()
関数を使用して、http取得リクエストからhttps://api.instagram.com/v1/tags/{tag}/media/recent?access_token={access token}
に戻ったJSONを解析しています。リクエストが私に返ってくるものがここにあります( - 問題ではないすべて)。注:私はURLの一部を消して、正しいものと仮定します。Instagram API:JSON.parse()が未定義のノードJs
/Users/pjtnt11/Documents/NodeJs/Instagram/index.js:52
console.log(JSON.parse(body).data.images.standard_resolution.url)
^
TypeError: Cannot read property 'images' of undefined
at Request._callback (/Users/pjtnt11/Documents/NodeJs/Instagram/index.js:52:67)
at Request.self.callback (/Users/pjtnt11/Documents/NodeJs/Instagram/node_modules/request/request.js:187:22)
at emitTwo (events.js:106:13)
at Request.emit (events.js:191:7)
at Request.<anonymous> (/Users/pjtnt11/Documents/NodeJs/Instagram/node_modules/request/request.js:1044:10)
at emitOne (events.js:96:13)
at Request.emit (events.js:188:7)
at IncomingMessage.<anonymous> (/Users/pjtnt11/Documents/NodeJs/Instagram/node_modules/request/request.js:965:12)
at emitNone (events.js:91:20)
at IncomingMessage.emit (events.js:185:7)
I:私はこのコードを実行する今までそれは私に、このエラーを与えるとき
request.get("https://api.instagram.com/v1/tags/" + tag + "/media/recent?access_token=" + accessToken, function(error, response, body)
{
console.log(JSON.parse(body).data.images.standard_resolution.url)
});
});
:ここ
{
"data":[
{
"images":{
"low_resolution":{
"url":"https://scontent.cdninstagram.com/t51.2885-15/s320x320/e35/--------_--------6248_1327489376_n.jpg?ig_cache_key=--------",
"width":320,
"height":320
},
"thumbnail":{
"url":"https://scontent.cdninstagram.com/t51.2885-15/s150x150/e35/--------_--------6248_1327489376_n.jpg?ig_cache_key=--------",
"width":150,
"height":150
},
"standard_resolution":{
"url":"https://scontent.cdninstagram.com/t51.2885-15/s640x640/sh0.08/e35/--------_--------6248_1327489376_n.jpg?ig_cache_key=--------",
"width":640,
"height":640
}
}
}
]
}
は、私は、要求を作成し、JSONを解析するために使用していたコードです
console.log()
が
JSON.parse()
より前に実行されていたが、
JSON.parse
がコードの実行をブロックしている可能性があります。コールバックや使える約束があるかどうかもチェックしますが、何も見えませんでした。
今、私は何が起こっているのか分かりません。誰もがこのエラーの原因となる可能性があり、私はそれを修正する方法を知っていますか?
EDIT: わかりましたので、私はdata
は、データ配列であるので、私は今問題data[0]
ように自分のコードを変更する必要があることは、私は、コードを実行したときに、私は次のエラーを取得するであることが判明:
/Users/pjtnt11/Documents/NodeJs/Instagram/index.js:52
console.log(JSON.parse(body).data[0].images.standard_resolution.url)
^
TypeError: Cannot read property '0' of undefined
at Request._callback (/Users/pjtnt11/Documents/NodeJs/Instagram/index.js:52:67)
at Request.self.callback (/Users/pjtnt11/Documents/NodeJs/Instagram/node_modules/request/request.js:187:22)
at emitTwo (events.js:106:13)
at Request.emit (events.js:191:7)
at Request.<anonymous> (/Users/pjtnt11/Documents/NodeJs/Instagram/node_modules/request/request.js:1044:10)
at emitOne (events.js:96:13)
at Request.emit (events.js:188:7)
at IncomingMessage.<anonymous> (/Users/pjtnt11/Documents/NodeJs/Instagram/node_modules/request/request.js:965:12)
at emitNone (events.js:91:20)
at IncomingMessage.emit (events.js:185:7)
あなたは、URLが使用できなくなっていることから、おそらくあなたはすでに – Tibrogargan
に返されるJSONの例を置くことができそれ。データは配列です。おそらくdata [0] .imagesが必要です。 – pjtnt11
申し訳ありませんが、逃したテキストの最初の段落の下にその権利@Tibrogarganあなたの質問 – Tibrogargan