How To Create Env File In Windows
Salah satu faktor yang menentukan kualitas dari aplikasi yang kita bangun adalah keamanan.
Pada tutorial sebelumnya:
- Cara Menggunakan Database MySQL di Nodejs;
- dan Cara Mengirim Email di Nodejs.
Kita menulis credential (konfigurasi, username dan password) langsung di dalam kode program.
Ini sebenarnya sangat tidak dianjurkan menurut metodology The Twelve-Factor App. 1
Apalagi nanti kalau sudah menggunakan Git.
Kenapa?
Karena bisa membuka celah keamanan dari aplikasi kita.
Karena username dan password database-nya akan mudah dicuri.
Salah satu cara mencegah hal ini, ialah dengan menggunakan Environtment Variable untuk menyimpan credential.
Apa itu Environment Variable?
Environment Variable merupakan variabel dinamis pada komputer yang dapat diakses oleh sebuah program. 2
(Selanjutanya biar gampang, kita akan sebut dengan variabel env)
Sebagai contoh, sebuah variabel env bernama HOME
akan membantu program mencari tahu lokasi direktori home
dari si user.
Environtment Variabel ada di setiap komputer.
Kita juga bisa membuatnya…
Variabel env yang kita buat, biasanya bersifat sementara.
Artinya, hanya akan ada saat proses terjadi atau program dieksekusi.
Sedangkan variabel env bawaan dari sistem operasi akan selalu ada.
Karena ia dibuat saat komputer dinyalakan (booting/startup).
Pada sustem operasi Windows, Variabel Env dapat kita lihat dari My Computer->Properties->Advenced.
Lalu untuk membuat dan melihat isi Variabel Env dari CMD, kita bisa gunakan perintah echo
dan set
.
Contoh:
set SITE_NAME=Petani Kode echo %SITE_NAME%
SITE_NAME
adalah nama variabelnya. Lalu saat kita ingin mencetak isinya, kita gunakan perntah echo
dengan nama variabel diapit dengan simbol persen (%
).
Ini merupakan aturan yang berlaku pada sistem operasi Windows.
Lalu pada Linux dan Unix, bagaimana?
Tidak jauh berbeda.
Pada Linux, kita menggunakan perintah export
untuk membuat variabel baru dan echo
untuk menampilkannya.
export NAMA_VARIABEL = "isi" echo NAMA_VARIABEL
Contoh:
export SITE_NAME = "Petani Kode" echo $SITE_NAME
Lihat! saat kita mencetak variabel SITE_NAME
, di sana kita menggunakan simbol dolar di depannya ($
).
Ini merupakan aturan yang berlaku di sistem operasi Linux dan Unix.
Mari kita coba untuk mencetak isi variabel yang sudah ada, seperti USER
, HOME
, HOSTNAME
, dll.
Inilah yang dinamakan variabel environment yang nantinya akan kita gunakan untuk menyimpan credential.
Mengakses Variabel Env dari Nodejs
Variabel environtment pada Nodejs, dapat kita akses melalui objek process
.
Ini merupakan objek global di Nodejs yang bisa diakses dari program mana saja, tanpa harus mengimpornya dengan fungsi require()
.
Objek process
memiliki properti env
yang berisi semua variabel environment yang ada di komputer.
Sebagai contoh, saya ingin mengakses variabel HOME
.
Maka nanti yang ditulis dalam kode akan seperti ini:
var home = process.env.HOME;
Ini sebenarnya pernah kita gunakan dalam pembuatan bot telegram di Hook.io dan pembuatan bot simsimi untuk menyimpan token.
Oke, biar lebih paham…
Mari kita coba dengan praktek.
Buatlah file baru dengan nama baca_env.js
, lalu isi dengan kode berikut:
var username = process.env.USERNAME; var password = process.env.PASSWORD; console.log( "username anda: " + username); console.log( "password anda: " + password);
Pada kode di atas, kita mencoba mengakses variabel USERNAME
dan PASSWORD
.
(Variabel env ini belum ada di komputer)
Sebelum mengeksekusi program, buatlah terlebih dahulu variabelnya dengan perintah export
(di Linux/Unix) atau set
(di Windows).
Apabila kita tidak membuat variabel env terlebih dahulu, maka hasilnya akan undefined
atau variabelnya belum ada.
Membuat variabel env di Linux:
export USERNAME = "Petanikode" export PASSWORD = "kopi"
Membuat variabel env di Windows:
set USERNAME=Petanikode set PASSWORD=kopi
Setelah membuat variabel env, sekarang coba eksekusi programnya:
Apakah kita harus selalu membuat variabel env saat eksekusi?
Tidak harus, variabel env cukup dibuat sekali saja.
Tapi, kalau nanti Terminal atau CMD-nya ditutup, maka variabel tersebut akan hilang.
Wadu… ribet donk 😞 setiap kali kita mau eksekusi program, kita harus buat dulu variabel env-nya.
Tidak juga.
Karena kita bisa:
Membuat Env Variable dari Nodejs
Coba tebak bagaimana caranya?
Yap, kita tinggal membuat properti baru di dalam objek process.env
.
Contoh: 📄 create_env.js
// membuat variabel env process.env.APP_VERSION = "1.34.2"; process.env.APP_NAME = "Tutorial Nodejs"; console.log("Variabel env sudah dibuat!"); console.log("APP_VERSION = " + process.env.APP_VERSION); console.log("APP_NAME = " + process.env.APP_NAME);
Pada kode program di atas, kita membuat dua buah variabel env dengan nama APP_VERSION
dan APP_NAME
.
Apa boleh nama variabelnya menggunakan huruf kecil?
Boleh-boleh saja, namun biasanya variabel env dibuat dengan huruf kapital semua.
Coba saja perhatikan variabel env yang sudah ada di sistem.
USER
, HOME
, OS
, HOSTNAME
…dkk.
Mereka semua pakai huruf kapital.
Lanjut…
Sekarang coba eksekusi program create_env.js
.
…dan coba gunakan perintah echo
untuk mencetaknya:
Lah! kok tidak ada? 😕
Ini karena variabel env-nya sudah dihapus dari memori.
Kenapa bisa dihapus?
Karena memang begitu…
Variabel env hanya akan ada saat program dieksekusi.
Coba saja buat variabel baru dari Terminal atau CMD, lalu tutup Terminal/CMD-nya dan buka kembali.
Lalu coba echo
variabel yang dibuat tadi. Apakah ada atau tidak?
Pasti tidak.
Lalu bagaimana dengan variabel USER
, HOSTNAME
, HOME
, dkk.?
Mengapa mereka semua selalu ada?
Karena mereka dibuat saat komputer startup atau saat Terminal/CMD dibuka.
Biasanya,—pada Linux—kita membuat variabel env di dalam file .bashrc
agar variabelnya selalu ada di Terminal.
…atau bisa juga di /etc/bashrc/
dan /etc/profile
.
Berarti nanti…kalau kita buka aplikasi di komputer lain, di komputer tersebut harus dibuat lagi donk veriabel env-nya.
Iya betul.
Saat kita bekerja dengan tim, aplikasi juga akan dibuka di komputer lain.
Kita harus membuat lagi variabel env di sana.
Terdengar ribet…
Tapi tenang saja, masalah ini bisa diselesaikan dengan:
Menggunakan File .env
File .env
(dotenv) berfungsi untuk menyimpan variabel env.
File ini berisi deklarasi atau pembuatan variabel env yang nantinya dapat kita load dari Nodejs.
Agar dapat menggunakan file .env
, kita membutuhkan modul dotenv
.
Modul ini nanti akan membantu kita untuk me-load semua variabel yang ada di file .env
.
Mari kita coba…
Pertama, kita instal dulu modul dotenv
ke dalam project dengan perintah:
Tunggu sampai proesenya selesai.
Setelah itu, buat file baru dengan nama dotenv.js
dengan isi sebagai berikut:
// load semua variabel env dari file .env require('dotenv').config(); // mencetak variabel env console.log("HOST: " + process.env.DB_HOST); console.log("USER: " + process.env.DB_USER); console.log("PASS: " + process.env.DB_PASS); console.log("NAME: " + process.env.DB_NAME);
Lalu, buat file .env
dengan isi sebagai berikut:
DB_HOST =localhost DB_USER =dian DB_PASS =petanikode DB_NAME =blog_nodejs
Setelah itu, coba eksekusi program dotenv.js
.
Mantap 👍
Saat baris ini dieksekusi, maka semua variabel yang ada di dalam file .env
akan di-load ke dalam program atau memori.
require('dotenv').config();
Method config()
sebenarnya bisa juga diberikan parameter untuk menentukan file .env
secara spesifik.
Contoh:
require('dotenv').config({path: '/full/custom/path/to/your/env/vars'})
Untuk parameter yang lain, kamu bisa membacanya di dokumentasi. 3
Oya, jika kamu menggunakan Git, pastikan memasukan file .env
ke dalam .gitignore
agar tidak ikut direkam oleh Git.
Saat kita akan meng-hosting atau deploy aplikasi ke server…
…file .env
tidak perlu di-upload.
Nanti kita buat lagi variabel env di server.
Caranya bagaimana?
Caranya, tergantung dari server hosting yang digunakan.
Coba ikuti tutorial membuat bot dengan Hookio. Nanti akan tahu caranya.
Apa Selanjutnya?
Kita sudah tahu bagaimana cara menggunakan variabel env di Nodejs sampai dengan menggunakan file .env
.
Selanjutnya, coba terapkan ini di dalam aplikasi yang akan kamu buat.
Semoga bermanfaat 🙏
-
http://12factor.net/config ↩︎
-
Wikipedia. "Environment variable". Retrieved 14 September 2018. ↩︎
-
https://github.com/motdotla/dotenv#readme ↩︎
How To Create Env File In Windows
Source: https://www.petanikode.com/nodejs-env/
Posted by: daviswallard1976.blogspot.com
0 Response to "How To Create Env File In Windows"
Post a Comment