Node.js getaddrinfo ENOTFOUND
Al usar Node.js para intentar obtener el contenido html de la siguiente página web:
eternagame.wikia.com/wiki/EteRNA_Dictionary
Obtuve el siguiente error:
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)
Ya busqué este error en stackoverflow y me di cuenta de que se debe a que node.js no puede encontrar el servidor desde DNS (creo). Sin embargo, no estoy seguro de por qué sucede esto, ya que mi código funciona perfectamente en www.google.com
.
Aquí está mi código (prácticamente copiado y pegado de una pregunta muy similar, excepto que se cambió el host):
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);
});
});
Aquí está la fuente de donde copié y pegué: ¿Cómo realizar llamadas a servicios web en Expressjs?
No estoy usando ningún módulo con node.js.
Gracias por leer.
En la documentación del módulo Node.js : http://nodejs.org/api/http.html#http_http_request_options_callbackHTTP
Puede llamar a http.get('http://eternagame.wikia.com/wiki/EteRNA_Dictionary', callback)
, y luego se analiza la URL con url.parse()
; o llamar http.get(options, callback)
, ¿dónde options
está?
{
host: 'eternagame.wikia.com',
port: 8080,
path: '/wiki/EteRNA_Dictionary'
}
Actualizar
Como se indica en el comentario de @EnchanterIO, el port
campo también es una opción separada; y el protocolo http://
no debe incluirse en el host
campo. Otras respuestas también recomiendan el uso del https
módulo si se requiere SSL.
Otra fuente común de error para
Error: getaddrinfo ENOTFOUND
at errnoException (dns.js:37:11)
at Object.onanswer [as oncomplete] (dns.js:124:16)
está escribiendo el protocolo (https, https, ...) al configurar la host
propiedad enoptions
// DON'T WRITE THE `http://`
var options = {
host: 'http://yoururl.com',
path: '/path/to/resource'
};