...Saya memiliki file koneksi db saya dan file "dilindungi" lainnya, di mana kredensial saya berada, dan file ini termasuk dalam .gitignore. Saya mengimpornya dan mencapai datanya..
Cara yang benar untuk melakukannya adalah dengan menggunakan variabel lingkungan.
Gunakan variabel lingkungan
Variabel lingkungan diatur pada lingkungan , yaitu mesin pengembangan lokal Anda atau server produksi jarak jauh. Kemudian, dalam aplikasi Anda, Anda membaca variabel lingkungan dan menggunakannya dengan tepat.
Ada (setidaknya) beberapa alasan mengapa hal itu biasanya dilakukan seperti ini:
- Kredensial tidak ada dalam file yang dapat dibaca oleh seseorang yang melihat konten repositori. Seseorang yang mengkloning repositori tidak perlu mengetahui Anda kredensial basis data.
- Kredensial kemungkinan berbeda antar lingkungan. Anda mungkin menggunakan database yang berbeda di mesin pengembangan lokal Anda dan database yang berbeda di server produksi jarak jauh Anda.
Inilah cara Anda mengatur variabel lingkungan (ini untuk Linux, OS lain mungkin berbeda):
$ export MONGO_DB_USERNAME=foo
$ export MONGO_DB_PASSWORD=bar
dan inilah cara Anda membacanya di dalam Node.js:
console.log(process.env.MONGO_DB_USERNAME) // logs 'foo'
console.log(process.env.MONGO_DB_PASSWORD) // logs 'bar'
atau meneruskan variabel ke proses saat memulai
Atau, Anda dapat meneruskan variabel saat memulai proses seperti:
$ MONGO_DB_USERNAME=foo MONGO_DB_PASSWORD=bar node app.js
Namun itu umumnya tidak disarankan karena Anda kemungkinan besar memulai proses Anda melalui skrip npm start. Sejak package.json
, di mana npm start
perintah didefinisikan, selalu berkomitmen ke repositori itu mengalahkan seluruh tujuan menyembunyikan kredensial.