Node.js Github API 获取用户回购时连接 ECONNREFUSED 错误

Node.js Github API connect ECONNREFUSED error getting user repos

我正在本地尝试获取 user repos via https get request with https.get

const https = require("https")

https.get({
    url: "https://api.github.com/users/ryanve/repos"
  }, response => {
    let data = ""
    response
      .on("data", chunk => data += chunk)
      .on("end", () => {
        console.log(data)
      })
  })
  .on("error", e => {
    console.error(e.message)
  })

我收到 ECONNREFUSED 错误

connect ECONNREFUSED 127.0.0.1:443

导致此错误的原因是什么?

身份验证?

我该如何解决?

node --versionv12.16.2

您不能在传递给 get 的对象中包含 url。由于这就是您传递的所有内容并且被忽略了,因此它使用了默认的 URL 本地主机。 (IMO,有一个默认的 URL 而不仅仅是抛出一个错误说 URL 丢失是 NodeJS 中的一个缺点,但这既不在这里也不在那里。)替换这个:

https.get({
    url: "https://api.github.com/users/ryanve/repos"
  }

有了这个:

https.get("https://api.github.com/users/ryanve/repos"

让它工作的步骤

  1. 谢谢!
  2. 收到 Please make sure your request has a User-Agent header 错误
  3. 已测试 curl 对同一端点有效
  4. 已了解如何在 options.headers
  5. 中发送 User-Agent

工作curl

curl -iH User-Agent:ryanve https://api.github.com/users/ryanve/repos

工作https.get

https.get("https://api.github.com/users/ryanve/repos", {
    headers: {
      "User-Agent": "ryanve"
    }
  }, response => {
    let data = ""
    response
      .on("data", chunk => data += chunk)
      .on("end", () => {
        console.log(JSON.parse(data, null, 2))
      })
  })
  .on("error", e => {
    console.error(e.message)
  })