NODE_ENVadalah 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_ENVsecara 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_ENVuntuk 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 productionatau 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_ENVdari 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