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


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

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

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 

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.


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.