Jak zmienić wartość process.env.PORT w node.js?

141

Chciałbym zmienić wartość process.env.PORT, jak mogę to zrobić?

Używam Ubuntu 12.04.

Dennis
źródło

Odpowiedzi:

281

Tylko dla jednego uruchomienia (z zachęty powłoki unixowej):

$ PORT=1234 node app.js

Bardziej na stałe:

$ export PORT=1234
$ node app.js

W systemie Windows :

set PORT=1234

W programie Windows PowerShell :

$env:PORT = 1234
JohnnyHK
źródło
4
Ze względu na dokumentację, msdn.microsoft.com/en-us/library/windows/desktop/… dla użytkowników systemu Windows
WraithKenny
3
Również w przypadku programu Powershell jest to $env:PORT = 80 technet.microsoft.com/en-us/library/ff730964.aspx
WraithKenny
VAR_1=value VAR_2=11827 node-> po prostu użyj spacji, aby użyć więcej niż jednej zmiennej w tym samym poleceniu
p4bloch
15

Możesz skorzystać z rozwiązania dla wielu platform https://www.npmjs.com/package/cross-env

$ cross-env PORT=1234
v2p
źródło
To chyba najlepsze rozwiązanie. Istnieje zbyt duży margines błędu w przypadku różnych terminali. Spędziłem około 40 minut, zanim znalazłem cross-envstreszczenie tego problemu i po prostu działa.
adi518
8

użyj poniższego polecenia, aby ustawić numer portu w procesie węzła podczas uruchamiania programu node JS:

set PORT =3000 && node file_name.js

Dostęp do ustawionego portu można uzyskać w kodzie jako

process.env.PORT 
Vikash Kumar
źródło
2

EDYCJA: Komentarz na @ sshow, jeśli próbujesz uruchomić aplikację węzła na porcie 80, poniższe instrukcje nie są najlepszym sposobem, aby to zrobić. Oto lepsza odpowiedź: Jak uruchomić Node.js na porcie 80?

Oryginalna odpowiedź:

Jeśli chcesz to zrobić, aby działać na porcie 80 (lub chcesz ustawić zmienną env bardziej na stałe ),

  1. Otwórz swój profil bash vim ~/.bash_profile
  2. Dodaj zmienną środowiskową do pliku export PORT=80
  3. Otwórz plik konfiguracyjny sudoers sudo visudo
  4. Dodaj następujący wiersz do pliku dokładnie w ten sposób Defaults env_keep +="PORT"

Teraz po uruchomieniu sudo node app.jspowinno działać zgodnie z oczekiwaniami.

Kyle Chadha
źródło
Uruchamianie skryptów węzła jako root (sudo) nie jest zalecane. sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080Zamiast tego użyj i nasłuchuj na porcie 8080. stigok.tumblr.com/post/139320914543/ ...
sshow
1
Tak, masz rację, połączyłem się z lepszą dyskusją (na którą również odpowiedziałem, zastrzeżenie ) i nauczyłem się po początkowym zastosowaniu tego podejścia.
Kyle Chadha