【问题标题】:Nodejs Https get Error: getaddrinfo ENOTFOUNDNodejs Https 获取错误:getaddrinfo ENOTFOUND
【发布时间】:2022-04-19 18:15:42
【问题描述】:

我正在尝试从loopback 获取filtered 记录,但我不明白为什么nodejs 在闲置命令时会出错:

const https = require('https');
    var uid = '02644da038b37d7ba70b7ee1a92ba1d9';
        var URL = 'https://mobileapp.mydomain.com/api/uuids?filter[where][uuid]='+uid;
https.get(URL, (res) => {
  console.log('statusCode:', res.statusCode);
  console.log('headers:', res.headers);    
  res.on('data', (d) => {
    process.stdout.write(d);
  });

}).on('error', (e) => {
  console.error('ERROR:',e);
});

输出错误:

ERROR: { Error: getaddrinfo ENOTFOUND mobileapp.mydomain.com mobileapp.mydomain.com:443
    at errnoException (dns.js:28:10)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:79:26)
  code: 'ENOTFOUND',
  errno: 'ENOTFOUND',
  syscall: 'getaddrinfo',
  hostname: 'mobileapp.mydomain.com',
  host: 'mobileapp.mydomain.com',
  port: 443 }

【问题讨论】:

  • 它无法将主机名mobileapp.mydomain.com解析为IP地址。
  • 我不知道为什么但是nslookup解析子域并显示静态ipaddres
  • 您是否使用了某种防病毒或防火墙软件,这些软件可能会阻止来自 Node 的 DNS 查找?
  • 不,没有任何防病毒或防火墙,它是基于 win 2008 的 VPS。

标签: node.js loopbackjs loopback


【解决方案1】:

显然你使用的域名无效。

【讨论】:

  • 当我输入 URL https://mobileapp.mydomain.com/api/uuids?filter[where][uuid]=02644da038b37d7ba70b7ee1a92ba1d9 时,结果是 json。
  • 看看你的hosts文件,我认为你错误地将mobileapp.mydomain.com指向一个特定的IP地址,在互联网上无法识别。
  • 可以使用请求方式吗?
  • 我试过ping mobileapp.mydomain.com,无法识别,看看你的shell输出有没有包含[127.0.0.1]?
  • 我的域和子域的静态 IP 地址。我使用的是节点 6.3.1 并升级到 8.5.0,现在看起来还可以。
【解决方案2】:

可能是因为环回中的SSL认证,你可以试试这个npm package

【讨论】:

    【解决方案3】:

    网址不应包含 https:// 修改网址
    来自 var URL = 'https://mobileapp.mydomain.com/api/uuids?filter[where][uuid]='+uid;
    到 var URL = 'mobileapp.mydomain.com/api/uuids?filter[where][uuid]='+uid;

    我遇到了这个问题,这解决了它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-24
      • 2016-04-20
      • 1970-01-01
      • 1970-01-01
      • 2014-06-09
      • 1970-01-01
      • 2016-07-03
      • 2017-10-16
      相关资源
      最近更新 更多