gpt4 book ai didi

Node.js getaddrinfo ENOTFOUND

转载 作者:IT老高 更新时间:2023-10-28 21:45:13 24 4
gpt4 key购买 nike

使用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);
});
});

这是我复制和粘贴的来源:How to make web service calls in Expressjs?

我没有在 node.js 中使用任何模块。

感谢阅读。

最佳答案

Node.js HTTP 模块的文档中:http://nodejs.org/api/http.html#http_http_request_options_callback

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

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

更新

正如@EnchanterIO 的评论中所说,port 字段也是一个单独的选项; http:// 协议(protocol)不应包含在 host 字段中。如果需要 SSL,其他答案还建议使用 https 模块。

关于Node.js getaddrinfo ENOTFOUND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17690803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com