2017-03-09 1 views
0

In den meisten Zeit habe ich Projekt auf Linux als öffentlich und habe keine Probleme damit. Aber jetzt versuche ich, das Projekt unter Windows auch als public auszuführen. I created Regeln für die Windows-Firewall. Und wenn ich versuche, öffnen Sie die Seite 192.168.0.106:3000 Ich bekomme einen Fehler, dieser Server funktioniert nicht. Wie wird öffentliches Node.js Express-Projekt als öffentlich konfiguriert?Node.js Express - Projekt als public ausführen

Danke.

this.app.listen(process.env.PORT || 3000, '192.168.0.106', function() { 
    console.log(chalk.green('Server started with port 3000')); 
    var os = require('os'); 
    var interfaces = os.networkInterfaces(); 
    var addresses = []; 
    for (var k in interfaces) { 
     for (var k2 in interfaces[k]) { 
      var address = interfaces[k][k2]; 
      if (address.family === 'IPv4' && !address.internal) { 
       addresses.push(address.address); 
      } 
     } 
    } 
    console.log(addresses); 
}); 
+0

Können Sie ein Code-Snippet anzeigen, wie Sie den Server starten? Höchstwahrscheinlich müssen Sie als "0.0.0.0" oder "irgendein" Gerät hören, aber wir werden mit einem Ausschnitt sehen. –

Antwort

0

Das zweite Argument ist der hörende Route, die Sie hören möchten. Die einfachste Lösung ist, es auf 0.0.0.0 einzustellen, um auf allen Routen zu hören.

this.app.listen(process.env.PORT || 3000, '0.0.0.0', function() { 
    //... 
}) 

Hier ist die Dokumentation über die http.listen api. Wenn Sie jedoch eine bestimmte IP-Adresse angeben, hören Sie nur diese eine Route. Wenn Sie versuchen, sich selbst als 192.168.0.x zurückzurufen, rufen Sie es von einer anderen Route aus an. Ähnliches auch mit 127.0.0.1. Verwenden Sie 0.0.0.0, um alle Routen abzuhören.

+0

Ich mag dich sagen, aber ich kann immer noch nicht auf Server zugreifen Seite –

+0

gehen Sie zu: 'http: // localhost: 3000' nicht eine bestimmte ip –

+0

lokal alle arbeiten gut, ich möchte Zugriff von verschiedenen Geräten und Orten, Verwenden Sie wie einfache Website –