Wie ändere ich den Wert von process.env.PORT in node.js?


Antworten:


281

Für nur einen Lauf (von der Unix-Shell-Eingabeaufforderung):

$ PORT=1234 node app.js

Dauerhafter:

$ export PORT=1234
$ node app.js

In Windows :

set PORT=1234

In Windows PowerShell :

$env:PORT = 1234

4
Zur Dokumentation, msdn.microsoft.com/en-us/library/windows/desktop/… für Windows-Benutzer
WraithKenny

3
Auch für Powershell ist es $env:PORT = 80 technet.microsoft.com/en-us/library/ff730964.aspx
WraithKenny

VAR_1=value VAR_2=11827 node-> Verwenden Sie einfach ein Leerzeichen, um mehr als eine Variable im selben Befehl zu verwenden
p4bloch

14

Sie können die plattformübergreifende Lösung https://www.npmjs.com/package/cross-env verwenden

$ cross-env PORT=1234

Dies ist wahrscheinlich die beste Lösung. Es gibt viel zu viel Spielraum für Fehler mit den verschiedenen Terminals. Ich habe ungefähr 40 Minuten gebraucht, bis ich cross-envAbstracts gefunden habe, die dieses Problem beseitigen und einfach funktionieren.
adi518

8

Verwenden Sie den folgenden Befehl, um die Portnummer im Knotenprozess festzulegen, während Sie das JS-Programm des Knotens ausführen:

set PORT =3000 && node file_name.js

Auf den eingestellten Port kann im Code als zugegriffen werden

process.env.PORT 

2

BEARBEITEN : Laut @ sshows Kommentar ist das Folgende nicht der beste Weg, wenn Sie versuchen, Ihre Knoten-App auf Port 80 auszuführen. Hier ist eine bessere Antwort: Wie führe ich Node.js auf Port 80 aus?

Ursprüngliche Antwort:

Wenn Sie dies tun möchten, um auf Port 80 ausgeführt zu werden (oder die env-Variable dauerhafter festlegen möchten ),

  1. Öffnen Sie Ihr Bash-Profil vim ~/.bash_profile
  2. Fügen Sie der Datei die Umgebungsvariable hinzu export PORT=80
  3. Öffnen Sie die sudoers-Konfigurationsdatei sudo visudo
  4. Fügen Sie der Datei genau so die folgende Zeile hinzu Defaults env_keep +="PORT"

Wenn Sie sudo node app.jses jetzt ausführen , sollte es wie gewünscht funktionieren.


Das Ausführen Ihrer Knotenskripte als root (sudo) wird nicht empfohlen. Verwenden Sie sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080stattdessen Port 8080 und lauschen Sie ihm. stigok.tumblr.com/post/139320914543/…
sshow

1
Ja, Sie haben Recht, ich habe eine bessere Diskussion verlinkt (die ich auch beantwortet habe, Haftungsausschluss ) und gelernt, nachdem ich diesen Ansatz ursprünglich verwendet habe.
Kyle Chadha
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.