2014-04-22 61 views
2

我在爲Instagram的API獲取信息並將其發送給Jade以在前端呈現時遇到了一些麻煩。如何使用Express JS和Jade訪問instagram API?

app.route("/api") 
.get(function(req, res){ 
    var url = "https://api.instagram.com/v1/users/1234/media/recent/?client_id=XXXX"; 

    request(url, function(err, res, data){ 
     console.log(JSON.parse(data)); 
     // does this go here 
     res.render('show', {media : data}); 
    }); 
    // or here? 
    res.render('show', {media : data}); 
});  

我想從這個API路徑中收集10個圖像,並將它們發送給Jade。我在我的終端中收到了幾個條目的解析響應。我很難弄清楚如何向Jade文件發送多個響應,然後讓Jade文件循環播放。

我知道url變量中的用戶ID和客戶端ID不正確。如果您有任何使用request()的替代方法,我也會接受。

+0

你似乎有到位的正確的代碼。沒有「多個」電話給翡翠。只有一個,然後玉被渲染併發送到瀏覽器。你可以讓Jade在你的「數據」變量中存在的任何數組內進行迭代。 – Biba

回答

4

所以我在回答我自己的問題。渲染必須位於request()函數內部。問題出在我的回調中。問題是我有「res」作爲我的.get和我的request()回調的響應。當我將request()函數中的「res」改爲「response」時,我再也沒有遇到任何問題。玉文件低於以及

app.route("/api2") 
.get(function(req, res){ 

    var url = "https://api.instagram.com/v1/users/1234/media/recent/?client_id=XXXX"; 

    request(url, function(err, response, body){ 
     var dataGram = JSON.parse(body); 
     res.render('show', dataGram); 
    }); 
}); 

玉文件:

each thing in data 
    h1 id : #{thing.id} 
    img(src="#{thing.images.thumbnail.url}") 
    a(href="#{thing.link}" target="_blank") link 
    h3 filter : #{thing.filter} 
+0

回答請求是什麼 – asdfdefsad

+0

@JSBin https://www.npmjs.com/package/request –