
Ich habe mir eine Lernaufgabe gestellt: eine schöne Website zu erstellen, die von einem Node.js-Server gehostet wird, auf den mein Heimnetzwerk zugreifen kann. Auf meinem Basissystem läuft Windows 7, und ich möchte dieser Website eine benutzerdefinierte Domäne zuweisen, damit der Zugriff von anderen Geräten aus problemlos möglich ist.
Ich habe meine Hostdatei bearbeitet, um hinzuzufügen mydomain
- funktioniert 127.0.0.1
jetzt http://mydomain:8080
auf derselben Maschine, aber verschiedene Geräte können nicht darauf zugreifen (entspricht localhost
, was verständlich ist, da andere Geräte es nicht verwenden können). Jetzt denke ich, dass ich vielleicht eine Möglichkeit brauche, meine Netzwerk-IP-Adresse statisch zu machen und diese IP dann in der Hostdatei „mydomain“ zuzuordnen.
Ist dies der beste Weg, um eine benutzerdefinierte Domäne zugänglich zu machen, oder gibt es eine Lösung mit JavaScript über Node.js/Express (Framework)/HTTP, mit der ich meine IP-Adresse dynamisch halten kann? Ich habe über die Verwendung von Proxys gelesen, aber könnte dies zu unerwartetem Verhalten meines Servers führen?
Im Idealfall würde ich es vorziehen, den Port auch nicht eingeben zu müssen und einfach etwas wiehttp://mydomain
Node.js steht os.networkinterfaces()
dafür zur Verfügung – Sie können es durchlaufen und die Netzwerk-IP zurückgeben. Vielleicht brauche ich nur eine Möglichkeit, die Netzwerk-IP einer benutzerdefinierten Domäne zuzuordnen?
Antwort1
Ich sehe also einige Lösungen für Ihr Problem:
- Einige SOHO-Router verfügen über DNS-Funktionen, mit denen Sie die IP-Adresse Ihres Computers statisch festlegen und einen DNS-Eintrag erstellen können.
- Die meisten modernen Betriebssysteme stellen
.local
eine Adresse bereit, die sich innerhalb des privaten Netzwerks befindetmachinename.local
. Sie können dann Node.js ausführen und die.local
Adresse verwenden, um den Hostcomputer aufzulösen.
Um Node.js auf Port 80 auszuführen, sollten Sie Ihre .listen
Funktion in ändern .listen(80)
.
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(80, "127.0.0.1");
console.log('Server running at http://127.0.0.1:80/');