【问题标题】:Displaying json from API in node在节点中显示来自 API 的 json
【发布时间】:2017-10-24 18:25:25
【问题描述】:

我正在尝试使用 flickr 的 API 在节点中为一个简单的 Web 应用程序显示 flickr 图片。我的以下方法不起作用,因为它无限期挂起,并且在我转到 url 时从不记录任何数据。 (我注释掉了渲染以专注于 json 数据)。

request = require("request"),

    app.get("/", function(req,res){
        var url = "https://api.flickr.com/services/feeds/photos_public.gne?tags=gt500&tagmode=any&format=json&nojsoncallback=1"

        request({
            url: url,
            json: true
        }), function(err, res, body) {
            if(err){
                console.log(err);
            }
            if(!err && res.statusCode == 200){
                console.log(body);
                 res.render('home');
            } else {
                console.log("status code errort");
            }
        }

        // res.render('home');
    });

似乎请求对象仍在等待此处的值,因为上述代码中没有任何反应。

【问题讨论】:

  • for request 你正在使用哪个模块?
  • 我正在使用请求模块。

标签: json node.js api


【解决方案1】:

无需将json 格式的选项传递给request 模块。只需传递url,如下所示:

request( url , function(err, res, body) {
    if(err){
        console.log(err);
    }
    if(!err && res.statusCode == 200){
        console.log(JSON.parse(body));
        res.render('home');
    } else {
        console.log("status code errort");
    }
});

【讨论】:

  • 我最初尝试过那个,但是当我把它放在我的 app.get("/,...) 调用中时,它仍然无限期地加载而没有向控制台记录任何内容。我的目标是加载 flickr 图片在主页中通过调用res.render('home',{flickrdata:body}) 将它们作为数据传递,一旦我弄清楚为什么什么都不会记录。
  • 它没有记录到控制台,因为内容太大尝试使用console.log(JSON.parse(body));这将记录内容
  • 这是有道理的。谢谢!
猜你喜欢
  • 1970-01-01
  • 2019-06-11
  • 1970-01-01
  • 2016-06-16
  • 1970-01-01
  • 2022-12-23
  • 1970-01-01
  • 2012-12-09
  • 2022-01-08
相关资源
最近更新 更多