396 Stimmen

Node.js getaddrinfo ENOTFOUND

Bei der Verwendung von Node.js, um den HTML-Inhalt der folgenden Webseite abzurufen:

eternagame.wikia.com/wiki/EteRNA_Dictionary

erhalte ich folgenden Fehler:

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)

Ich habe diesen Fehler bereits auf Stackoverflow nachgeschlagen und festgestellt, dass dies daran liegt, dass Node.js den Server nicht über DNS finden kann (denke ich). Ich bin jedoch nicht sicher, warum das der Fall ist, da mein Code auf www.google.com perfekt funktioniert.

Hier ist mein Code (praktisch kopiert und eingefügt von einer sehr ähnlichen Frage, außer dass der Host geändert wurde):

var http = require("http");

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

http.get(options, function (http_res) {
    // initialisiere den Container für unsere Daten
    var data = "";

    // Dieses Ereignis wird viele Male ausgelöst, jedes Mal wird ein weiteres Stück der Antwort gesammelt
    http_res.on("data", function (chunk) {
        // füge diesen Chunk zu unserer wachsenden `data`-Variable hinzu
        data += chunk;
    });

    // Dieses Ereignis wird *einmal* ausgelöst, nachdem alle `data`-Ereignisse/Chunks gesammelt wurden
    http_res.on("end", function () {
        // Sie können res.send anstelle von console.log verwenden, um über Express auszugeben
        console.log(data);
    });
});

Hier ist die Quelle, von der ich kopiert und eingefügt habe: Wie macht man Webservice-Aufrufe in Expressjs?

Ich verwende keine Module mit Node.js.

Vielen Dank fürs Lesen.

3voto

kashlo Punkte 1598

In meinem Fall kam der Fehler daher, dass ich einen falschen Host-Wert verwendet habe

  var options = {
    host: 'graph.facebook.com/v2.12/',
    path: path
  }

sollte sein

  var options = {
    host: 'graph.facebook.com',
    path: path
  }

also sollte alles nach .com oder .net usw. in den Wert des Pfadparameters verschoben werden

1voto

sudeep patel Punkte 31

Ich habe den gleichen Fehler erhalten und untenstehenden Link verwendet, um Hilfe zu erhalten:

https://nodejs.org/api/http.html#http_http_request_options_callback

In meinem Code fehlte:

req.end();

(NodeJs V: 5.4.0) Nachdem ich die oben genannte req.end(); Zeile hinzugefügt habe, konnte ich den Fehler beseitigen und es funktionierte gut für mich.

1voto

Versuchen Sie, anstatt des Hostnamens die Server-IP-Adresse zu verwenden. Das hat bei mir funktioniert. Hoffe, es funktioniert auch bei Ihnen.

1voto

petur Punkte 1366

Ich habe diesen Fehler bekommen, als ich vom Entwicklungs- zum Produktionsumfeld gewechselt bin. Ich war besessen davon, https:// zu allen Links hinzuzufügen. Dies ist jedoch nicht notwendig, daher könnte dies eine Lösung für einige sein.

1voto

mayorbyrne Punkte 475

Ich habe es mit dem Anforderungsmodul versucht und konnte den Inhalt dieser Seite ziemlich einfach ausdrucken. Leider kann ich mit meinen Fähigkeiten nicht weiterhelfen als das.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X