Di banyak lingkungan (mis. Heroku), dan sebagai konvensi, Anda dapat mengatur variabel lingkungan PORT
untuk memberi tahu port web tempat server Anda mendengarkan.
Jadi process.env.PORT || 3000
artinya: apa pun yang ada di PORT variabel lingkungan, atau 3000 jika tidak ada di sana.
Jadi, Anda meneruskannya app.listen
, atau ke app.set('port', ...)
, dan itu membuat server Anda dapat menerima parameter dari lingkungan tempat mendengarkan port.
Jika Anda melewati 3000
hard-coded app.listen()
, Anda selalu mendengarkan pada port 3000, yang mungkin hanya untuk Anda, atau tidak, tergantung pada persyaratan Anda dan persyaratan lingkungan di mana Anda menjalankan server Anda.
Saat meng-hosting aplikasi Anda di layanan lain (seperti Heroku, Nodejitsu, dan AWS), host Anda dapat secara mandiri mengkonfigurasi
process.env.PORT
variabel untuk Anda; setelah semua, skrip Anda berjalan di lingkungannya.Elastic Beanstalk Amazon melakukan ini. Jika Anda mencoba menetapkan nilai port statis seperti
3000
bukannya diprocess.env.PORT || 3000
mana 3000 adalah pengaturan statis Anda, maka aplikasi Anda akan menghasilkan kesalahan 500 gateway karena Amazon mengkonfigurasi port untuk Anda.Ini adalah aplikasi Express minimal yang akan digunakan di Elastic Beanstalk Amazon:
sumber
const {PORT = 3000} = process.env
Dalam beberapa skenario,
port
hanya dapat ditetapkan oleh lingkungan dan disimpan dalam variabel lingkungan pengguna. Di bawah ini adalah cara kerja aplikasi node.js.The
process
objek adalah global yang menyediakan informasi tentang, dan kontrol atas, proses Node.js saat ini. Sebagai global, selalu tersedia untuk aplikasi Node.js tanpa menggunakanrequire()
.The
process.env
properti mengembalikan sebuah objek yang berisi lingkungan pengguna.Contoh objek ini terlihat seperti:
Sebagai contoh,
terminal : atur variabel lingkungan pengguna baru, bukan secara permanen
app.js : baca variabel lingkungan baru dari aplikasi node
terminal : jalankan aplikasi simpul dan dapatkan nilainya
sumber