如何使用 Express JS 和 Jade 访问 instagram API?

Posted

技术标签:

【中文标题】如何使用 Express JS 和 Jade 访问 instagram API?【英文标题】:How do I access the instagram API with Express JS and Jade? 【发布时间】:2014-04-22 15:39:58 【问题描述】:

我在获取 Instagram API 的信息并将其发送到 Jade 以在前端呈现时遇到了一些问题。

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(),我也对此持开放态度。

【问题讨论】:

您似乎拥有正确的代码。 Jade 没有“多次”调用。只有一个,然后玉被渲染并发送到浏览器。您可以让 Jade 在您的“数据”变量中存在的任何数组中进行迭代。 【参考方案1】:

所以我在这个问题上回答我自己的问题。渲染必须在 request() 函数内。问题出在我的回调中。问题是我有“res”作为我的 .get 和我的 request() 回调的响应。当我将 request() 函数中的“res”更改为“response”时,我不再遇到任何问题。 Jade文件也在下面

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

【讨论】:

回答中的要求是什么

以上是关于如何使用 Express JS 和 Jade 访问 instagram API?的主要内容,如果未能解决你的问题,请参考以下文章

您如何在 Node.js + Express + Mongoose + Jade 中处理表单验证,尤其是嵌套模型

Express JS、Mongoose JS 和 Jade 中的 Textarea 换行符

不使用 Jade 的 Node.js + Express

我不能用express.js执行jade(pug)

无法使用 Passport.js 和 Express 4 访问 req.user

使用 jQuery 和 Jade