NODE_ENV
adalah variabel lingkungan yang dipopulerkan oleh kerangka kerja server web ekspres . Ketika aplikasi node dijalankan, ia dapat memeriksa nilai variabel lingkungan dan melakukan hal-hal yang berbeda berdasarkan nilai tersebut. NODE_ENV
secara khusus digunakan (dengan konvensi) untuk menyatakan apakah suatu lingkungan tertentu adalah produksi atau lingkungan pengembangan . Kasing yang umum digunakan adalah menjalankan kode debugging atau logging tambahan jika berjalan di lingkungan pengembangan.
Mengakses NODE_ENV
Anda dapat menggunakan kode berikut untuk mengakses variabel lingkungan sendiri sehingga Anda dapat melakukan pemeriksaan dan logika Anda sendiri:
var environment = process.env.NODE_ENV
Atau sebagai alternatif menggunakan express ' app.get('env')
( catatan: defaultnya adalah "development"
)
Ketahuilah bahwa jika Anda belum menetapkan secara eksplisit NODE_ENV
untuk lingkungan Anda, itu akan terjadi undefined
.
Pengaturan NODE_ENV
Bagaimana sebenarnya mengatur variabel lingkungan bervariasi dari sistem operasi ke sistem operasi, dan juga tergantung pada pengaturan pengguna Anda.
Jika Anda ingin mengatur variabel lingkungan sebagai satu kali, Anda dapat melakukannya dari baris perintah:
- linux & mac :
export NODE_ENV=production
- windows :
$env:NODE_ENV = 'production'
Dalam jangka panjang Anda harus bertahan ini sehingga tidak disetel jika Anda reboot - daripada mendaftar semua metode yang mungkin untuk melakukan ini, saya akan membiarkan Anda mencari cara melakukannya sendiri!
Konvensi telah menentukan bahwa hanya ada dua nilai yang harus Anda gunakan untuk NODE_ENV
, baik production
atau development
, semua huruf kecil. Tidak ada yang menghentikan Anda menambahkan lebih banyak nilai, tetapi mungkin itu bukan ide yang baik, karena saya melihat banyak kode semacam ini di banyak node_modules yang saya gunakan:
var development = process.env.NODE_ENV !== 'production';
Perhatikan bahwa ini adalah ide yang sangat buruk untuk mencoba mengatur NODE_ENV
dari dalam aplikasi simpul itu sendiri - jika Anda melakukannya hanya akan berlaku untuk proses dari mana itu ditetapkan , sehingga hal-hal yang mungkin tidak akan berfungsi seperti yang Anda harapkan. Jangan lakukan itu - Anda akan menyesalinya.
app.configure('development', ...)
atau "produksi" untuk menetapkan pengaturan tertentu hanya untuk pengembangan atau lingkungan produksi. Lihat expressjs.com/api.html#app.configure