【问题标题】:ECONNREFUSED, Node HTTP GET RequestECONNREFUSED,节点 HTTP GET 请求
【发布时间】:2017-07-29 12:34:08
【问题描述】:

我在尝试做一些对我来说是新的事情时有点不知所措。我正在构建一个 API 以使用 Node 和 AWS Lambda 与 Nationbuilder 网站进行交互。我需要使用 Nationbuilder 的 API 从数据库中提取信息。我在我的代码中尝试了很多变体,这是我最新的精简尝试。它返回“错误:连接 ECONNREFUSED 127.0.0.1:443”。有没有人看到我应该做不同的事情?我用 ****** 替换了访问令牌。导出处理函数几乎没有被使用;它与 Lambda 处理请求而不是发出请求的主要功能相连接。

我可以通过hurl.it成功发出GET请求,所以问题出在我头上。

var package = require('./package.json');
var myNewApi = require('./lib/my_new_api.js');
var http = require("http");
var https = require("https");

var https = require('https');
var str = '';
var url = "https://neenahrockets.nationbuilder.com/api/v1/people/count?access_token=**************";

exports.handler = function (event, context) {
    callback = function(response) {
      response.on('data', function (chunk) {
        str += chunk;
      });
      response.on('end', function () {
        console.log(req.data);
        console.log(str);
      });
    }

    var options = {
        url : url,
        method: "GET",
        json: true,
        headers: {
            "content-type": "application/json",
        },
    }

    var req = https.get(options, callback)

};

【问题讨论】:

  • 您确定url 是您需要传递给get 方法的正确属性名称吗?由于错误消息是 127.0.0.1 听起来您没有正确传递 URL,我认为 https.get 采用与 https.request 相同的参数,后者采用单独的 hosthostnamepath 参数.
  • 位于localhost地址127.0.0.1:443的数据库是否正在运行?例如,如果数据库不在本地运行,Mongo 会抛出类似的错误。

标签: node.js get aws-lambda http-request


【解决方案1】:

感谢 Mark B 发现了 URL 属性的问题。这是对我有用的代码。我对 http 请求标头进行了另一项小改动。

var package = require('./package.json');
var myNewApi = require('./lib/my_new_api.js');
var http = require("http");
var https = require("https");    

var str = '';

exports.handler = function (event, context) {
    callback = function(response) {    

      response.on('data', function (chunk) {
        str += chunk;
      });

      response.on('end', function () {
        console.log(req.data);
        console.log(str);

      });
    }

    var options = {
        host : 'neenahrockets.nationbuilder.com',
        path:  '/api/v1/people/count?access_token=*********',
        json: true,
        headers: {
            "content-type": "application/json",
            "accept": "application/json"
        },
    }

 var req = https.get(options, callback)

};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多