当前位置: 首页 > 知识库问答 >
问题:

node.js getaddrinfo ENOTFOUND

宋俊艾
2023-03-14

当使用node.js尝试获取以下网页的html内容时:

eternagame.wikia.com/wiki/eterna_dictionary

我得到以下错误:

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)

我确实已经在stackoverflow上查到了这个错误,并且意识到这是因为Node.js无法从DNS中找到服务器(我认为)。但是,我不确定为什么会这样,因为我的代码在www.google.com上运行得很好。

这里是我的代码(实际上是从一个非常相似的问题中复制和粘贴的,只是改变了主机):

var http = require("http");

var options = {
    host: 'eternagame.wikia.com/wiki/EteRNA_Dictionary'
};

http.get(options, function (http_res) {
    // initialize the container for our data
    var data = "";

    // this event fires many times, each time collecting another piece of the response
    http_res.on("data", function (chunk) {
        // append this chunk to our growing `data` var
        data += chunk;
    });

    // this event fires *one* time, after all the `data` events/chunks have been gathered
    http_res.on("end", function () {
        // you can use res.send instead of console.log to output via express
        console.log(data);
    });
});

这里是我复制和粘贴的来源:如何在ExpressJS中进行web服务调用?

我没有使用任何带有node.js的模块。

多谢阅读。

共有1个答案

林夕
2023-03-14

在node.jshttp模块的文档中:http://nodejs.org/api/http.html#http_http_request_options_callback

您可以调用http.get('http://eternagame.wikia.com/wiki/eterna_dictionary',callback),然后使用URL.parse()解析URL;或者调用http.get(options,callback),其中options

{
  host: 'eternagame.wikia.com',
  port: 8080,
  path: '/wiki/EteRNA_Dictionary'
}

更新

正如@enchanterio的评论所述,端口字段也是一个单独的选项;并且协议http://不应包含在主机字段中。其他答案还建议如果需要SSL,则使用https模块。

 类似资料:

相关问答

相关文章

相关阅读