【问题标题】:How to access external api using sails.js?如何使用sails.js 访问外部api?
【发布时间】:2023-03-29 12:44:01
【问题描述】:

我正在尝试使用sails.js 从控制器内的facebook 访问信息。这是我的代码:

module.exports = {


  commonLikes : function(req,res){
    var other_uid = req.param('uid');
    //var me = req.params.user.uid;
    console.log(other_uid);

    User.findOne({uid : other_uid}).done( function(err,data){
        var other = data;

    var http = require('http'), options = {
            host : "https://graph.facebook.com",
            port : 80,
            path : "/"+other.uid+"/likes?access_token="+other.token,
            method : 'GET'
    };

    var webservice_data = "";

    var webservice_request = http.request(options, function(webservice_response)
    {
        webservice_response.on('error', function(e){ console.log(e.message); });
        webservice_response.on('data', function(chunk){ webservice_data += chunk;});
        webservice_response.on('end', function(){res.send(webservice_data);});
        console.log('coucou');
    });



    });
  }

};

虽然 http.request 函数看起来不起作用,但在尝试访问 /Likes/commonLikes?uid=XXXXX 时出现错误。

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: getaddrinfo ENOTFOUND
    at errnoException (dns.js:37:11)
    at Object.onanswer [as oncomplete] (dns.js:124:16)

有谁知道我如何使用sails 访问外部API?

谢谢,

【问题讨论】:

    标签: facebook node.js sails.js


    【解决方案1】:

    host 不应包含协议:

        var http = require('http'), options = {
            host : "graph.facebook.com",
            port : 80,
            path : "/"+other.uid+"/likes?access_token="+other.token,
            method : 'GET'
        };
    

    如果您想使用https,请使用https 模块而不是http,并使用端口443。完成请求后不要忘记添加req.end()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-18
      • 2022-08-15
      • 1970-01-01
      • 2021-08-19
      • 1970-01-01
      • 2013-07-02
      • 2018-05-25
      • 2018-04-15
      相关资源
      最近更新 更多