Bagaimana cara mengubah nilai process.env.PORT di node.js?

141

Saya ingin mengubah nilai process.env.PORT, bagaimana saya bisa melakukan ini?

Saya menjalankan Ubuntu 12.04.

Dennis
sumber

Jawaban:

281

Untuk sekali jalan (dari prompt shell unix):

$ PORT=1234 node app.js

Lebih permanen:

$ export PORT=1234
$ node app.js

Di Windows :

set PORT=1234

Di Windows PowerShell :

$env:PORT = 1234
JohnnyHK
sumber
4
Demi dokumentasi, msdn.microsoft.com/en-us/library/windows/desktop/… untuk pengguna windows
WraithKenny
3
Juga untuk Powershell, itu $env:PORT = 80 technet.microsoft.com/en-us/library/ff730964.aspx
WraithKenny
VAR_1=value VAR_2=11827 node-> cukup gunakan spasi untuk menggunakan lebih dari satu variabel pada perintah yang sama
p4bloch
15

Anda dapat menggunakan solusi lintas platform https://www.npmjs.com/package/cross-env

$ cross-env PORT=1234
v2p
sumber
Ini mungkin solusi terbaik. Ada terlalu banyak margin untuk kesalahan dengan terminal yang berbeda. Saya menghabiskan waktu 40 menit sampai saya menemukan cross-envabstrak masalah ini dan hanya berfungsi.
adi518
8

gunakan perintah di bawah ini untuk mengatur nomor port dalam proses simpul saat menjalankan program JS node:

set PORT =3000 && node file_name.js

Port yang ditetapkan dapat diakses dalam kode sebagai

process.env.PORT 
Vikash Kumar
sumber
2

EDIT: Komentar per @ sshow, jika Anda mencoba menjalankan aplikasi node di port 80, di bawah ini bukan cara terbaik untuk melakukannya. Inilah jawaban yang lebih baik: Bagaimana cara saya menjalankan Node.js pada port 80?

Jawaban asli:

Jika Anda ingin melakukan ini untuk dijalankan pada port 80 (atau ingin mengatur variabel env lebih permanen ),

  1. Buka profil bash Anda vim ~/.bash_profile
  2. Tambahkan variabel lingkungan ke file export PORT=80
  3. Buka file konfigurasi sudoers sudo visudo
  4. Tambahkan baris berikut ke file persis seperti itu Defaults env_keep +="PORT"

Sekarang ketika Anda menjalankannya sudo node app.jsharus berfungsi seperti yang diinginkan.

Kyle Chadha
sumber
Menjalankan skrip simpul Anda sebagai root (sudo) tidak disarankan. Gunakan sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080, dan dengarkan pada port 8080 sebagai gantinya. stigok.tumblr.com/post/139320914543/…
sshow
1
Ya, Anda benar, saya telah menautkan ke diskusi yang lebih baik (bahwa saya juga menjawab, penafian ) dan belajar setelah awalnya menggunakan pendekatan ini.
Kyle Chadha