从节点JS请求外部URL

时间:2018-06-28 16:03:42

标签: javascript node.js request

我尝试从我的nodejs应用程序请求外部url,而不是得到json作为响应,而是收到dns.js错误,也许你们中的一些人已经遇到了这个问题并有解决方案?

/* The request */
request = require('request');
const options = {
     url: 'http://my_url_host',
     port: 8188,
     path: `/shop`,
     qs: { id:5 }
};

request.get(options, function(response){
    console.log(response);
})

控制台输出:

0|server   | { Error: getaddrinfo ENOTFOUND my_url_host 
my_url_host:80
0|server   |     at errnoException (dns.js:55:10)
0|server   |     at GetAddrInfoReqWrap.onlookup [as oncomplete] 
(dns.js:97:26)
0|server   |   code: 'ENOTFOUND',
0|server   |   errno: 'ENOTFOUND',
0|server   |   syscall: 'getaddrinfo',
0|server   |   hostname: 'my_url_hostr',
0|server   |   host: 'my_url_host',
0|server   |   port: 80 }

有人可以帮助我吗?我已经在Google上搜索失败了。

谢谢。

2 个答案:

答案 0 :(得分:0)

当Node无法将URL映射到IP地址时,会出现此错误。可能的资源是

  1. 您失去了互联网连接。
  2. 您提供的网址无效。
  3. 您的DNS服务器出了点问题。

答案 1 :(得分:0)

您正在尝试访问端口8188上的网址,因此请确保主机http://my_url_host实际上打开了端口8188 ,并且实际上是监听,或将端口8188 转接到80或8080 以进行HTTP呼叫。

您是否通过访问http://my_url_host:8188来登录浏览器?

检查您是否在任何地方都没有拼错主机名( my_url_hostr )。这是从您的控制台输出中获得的:

0|server   |   hostname: 'my_url_hostr',