‫Instruktur: Selamat datang kembali.
‫Dalam video ini Anda akan mempelajari
‫semua tentang variabel lingkungan.
‫Jadi apa itu, bagaimana kita mengaturnya, dan bagaimana kita menggunakannya.
‫Sekarang ini bukan tentang Express, ini benar-benar
‫berkaitan dengan pengembangan node JS secara umum, tetapi kami
‫benar-benar membutuhkan ini untuk melanjutkan
‫proyek dan jadi ini saat yang tepat
‫untuk membicarakannya.
‫Jadi node JS, atau aplikasi Express, dapat
‫berjalan di lingkungan yang berbeda.
‫Dan yang paling penting adalah lingkungan pengembangan
‫dan lingkungan produksi.
‫Itu karena tergantung pada lingkungan, kita mungkin menggunakan
‫database yang berbeda misalnya, atau kita mungkin
‫mengaktifkan atau menonaktifkan login, atau kita mungkin
‫mengaktifkan atau menonaktifkan debugging, atau
‫benar-benar semua jenis pengaturan berbeda yang mungkin
‫berubah tergantung pada pengembangan yang kita lakukan. masuk kembali
‫Jadi sekali lagi yang paling penting adalah
‫pengembangan dan lingkungan produksi.
‫Tetapi ada lingkungan lain yang
‫mungkin digunakan oleh tim yang lebih besar.
‫Jadi jenis pengaturan yang baru
‫saja saya sebutkan, seperti database atau login yang berbeda
‫dihidupkan atau dimatikan, yang akan didasarkan pada variabel lingkungan.
‫Sekarang secara default, Express mengatur lingkungan ke pengembangan yang sangat masuk
‫akal karena itulah yang kami lakukan ketika kami
‫memulai proyek baru.
‫Jadi mari kita hanya
‫demi demonstrasi lihat variabel itu, dan
‫kita akan melakukannya di sini di server.
‫Jadi ingat bahwa segala sesuatu yang tidak terkait dengan
‫Express kami akan melakukannya di luar aplikasi. berkas JS.
‫Jadi kami hanya menggunakan yang ini di sini untuk mengonfigurasi aplikasi kami.
‫Jadi kami hanya menggunakan yang ini untuk
‫mengonfigurasi semua yang ada hubungannya dengan aplikasi Express.
‫Tetapi variabel lingkungan benar-benar di
‫luar cakupan Express.
‫Jadi mari kita cepat melakukan konsol. log di
‫sini dari aplikasi. dapatkan
‫dan kemudian akhiri.
‫Simpan di sini dan di bawah sini Anda bisa melihat perkembangannya.
‫Biarkan saya mengosongkan konsol di sini, simpan lagi, dan
‫di sini lagi Anda melihat pengembangan.
‫Jadi itulah lingkungan tempat kita berada saat ini.
‫Dan Anda melihat bahwa aplikasi ini. getenv akan memberi
‫kita variabel lingkungan env.
‫Jadi secara ringkas, variabel lingkungan adalah variabel global yang
‫digunakan untuk menentukan lingkungan tempat aplikasi
‫simpul berjalan.
‫Jadi yang ini disetel oleh
‫Express, tetapi simpul JS sendiri sebenarnya menetapkan banyak lingkungan.
‫Sekarang variabel env ini sebenarnya disetel oleh Express,
‫tetapi node JS sendiri sebenarnya juga
‫menetapkan banyak variabel lingkungan.
‫Jadi mari kita lihat itu juga.
‫Jadi yang ini berada di proses. lingkungan
‫Berikan simpanan dan
‫jadi di sini kita memiliki banyak variabel yang berbeda
‫oke dan saya tidak akan membahas semuanya tetapi mari kita lihat mereka benar-benar sekelompok
‫dari mereka, dan node menggunakan sebagian besar dari mereka
‫secara internal.
‫Misalnya tugas ke direktori kerja saat
‫ini di sini di variabel lingkungan ini
‫dan benar-benar banyak hal lain seperti yang Anda lihat.
‫Misalnya folder rumah saya
‫atau nama login saya, Anda melihat skrip yang kami gunakan untuk memulai
‫proses ini, sangat banyak hal yang karena alasan tertentu
‫diperlukan node JS secara internal.
‫Sekarang variabel-variabel ini, berasal dari
‫modul inti proses dan kami menetapkan pada saat proses dimulai.
‫Dan seperti yang Anda lihat, kami tidak memerlukan modul proses
‫dengan benar.
‫Ini hanya tersedia di mana-mana secara otomatis.
‫Sekarang di Express, banyak paket
‫bergantung pada variabel khusus yang disebut node N.
‫Jadi itu adalah variabel
‫yang semacam konvensi yang harus menentukan apakah kita
‫sedang dalam pengembangan atau dalam mode produksi, oke.
‫Namun Express tidak benar-benar mendefinisikan
‫variabel ini, jadi kita harus melakukannya secara manual.
‫Dan ada banyak cara yang bisa kita
‫lakukan, tetapi mari kita mulai dengan yang
‫paling mudah yaitu menggunakan terminal.
‫Jadi saya akan
‫menyelesaikan proses ini di sini, menghapusnya, dan saat terakhir kita memulai
‫proses ini, kita melakukannya menggunakan npm start.
‫Dan npm start pada gilirannya berarti di mana itu?
‫Jadi itu singkatan dari server nodemon.
‫Jadi mari kita salin ini di sini.
‫Jadi kami menggunakan server nodemon. js untuk memulai proses.
‫Tetapi jika Anda ingin
‫menetapkan variabel lingkungan untuk proses ini, kita perlu
‫merencanakan terlebih dahulu variabel tersebut ke perintah ini.
‫Jadi kita
‫katakan nodeenv, yang merupakan variabel khusus
‫yang baru saja saya bicarakan sama dengan
‫pengembangan.
‫Dan jika saya memulai proses ini sekarang, mari kita lihat.
‫Jadi sekarang kita memiliki simpul N yang disetel ke pengembangan.
‫Dan inilah hasil dari melakukan konsol ini. proses logout.
‫lingkungan
‫Dan variabel
‫yang kita miliki di sini sebenarnya berasal dari perintah itu.
‫Dan kita sebenarnya bisa mendefinisikan lebih banyak lagi jika kita mau.
‫Jadi katakan saja X adalah 23
‫hanya untuk tujuan pengujian memulai proses dan sekarang Anda
‫melihat variabel lingkungan X dilampirkan ke string 23 ini.
‫Jadi sekali lagi banyak paket pada npm
‫yang kita gunakan untuk pengembangan
‫Express sebenarnya bergantung pada variabel lingkungan ini.
‫Jadi ketika proyek kami sudah
‫siap dan kami akan menerapkannya, kami kemudian harus mengubah node N dan variabel menjadi produksi.
‫Dan kami akan melakukannya tentu saja setelah kami
‫menerapkan proyek pada akhir kursus.
‫Jadi kami menetapkan simpul N
‫dan X sebagai variabel lingkungan, tetapi kami dapat melakukan lebih banyak lagi.
‫Dan itu karena kami biasanya
‫menggunakan variabel lingkungan seperti pengaturan konfigurasi untuk aplikasi kami.
‫Jadi, setiap kali aplikasi kami memerlukan beberapa konfigurasi
‫untuk hal-hal yang mungkin berubah berdasarkan lingkungan tempat aplikasi
‫berjalan, kami menggunakan variabel lingkungan.
‫Misalnya kita mungkin menggunakan database yang berbeda untuk
‫pengembangan dan pengujian sampai kita bisa mendefinisikan
‫satu variabel untuk masing-masing dan kemudian
‫mengaktifkan database yang tepat sesuai dengan lingkungan.
‫Kami juga dapat mengatur data
‫sensitif seperti kata sandi dan nama pengguna menggunakan variabel lingkungan.
‫Sekarang tidak praktis untuk selalu mendefinisikan
‫semua variabel ini dalam perintah di
‫mana kita memulai aplikasi.
‫Jadi bayangkan
‫kita memiliki 10 variabel lingkungan dan tidak praktis jika harus
‫menuliskan semuanya di sini di dalam perintah ini.
‫Dan alih-alih yang kami lakukan adalah membuat file konfigurasi.
‫Jadi biarkan aku pergi ke depan
‫dan membuat config. lingkungan
‫Jadi env benar-benar
‫konvensi untuk mendefinisikan file yang merupakan variabel lingkungan ini.
‫Dan kode VS benar-benar
‫mengenalinya dan meletakkan ikon konfigurasi ini tepat di file.
‫Jadi sekarang mari kita definisikan variabel ini di
‫sini dan tempel di sini.
‫Dan kita
‫juga dapat menggunakan beberapa data sensitif yang baru saja saya sebutkan.
‫Jadi katakanlah pengguna
‫adalah Jonas dalam huruf kecil dan kata sandinya adalah satu, dua, tiga, empat, lima, enam.
‫Sekarang seperti yang Anda lihat, nama variabel ini
‫biasanya selalu dalam huruf besar.
‫Jadi itu semacam konvensi yang kami gunakan.
‫Sekarang dalam kode VS Anda
‫mungkin semua teks hanya berwarna putih sehingga Anda tidak memiliki penyorotan sintaks.
‫Dan saya memilikinya karena mereka menggunakan ini . ekstensi env di sini.
‫Jadi jika Anda ingin Anda. env agar terlihat bagus seperti ini, silakan
‫lanjutkan dan instal yang itu.
‫Jadi kita memiliki kata sandi
‫pengguna, mari kita tentukan juga port tempat aplikasi kita harus berjalan.
‫Jadi itu juga
‫jenis variabel standar yang biasanya di . env file seperti ini.
‫Dan mari kita atur yang ini ke 8.000.
‫Sekarang bagaimana kita benar-benar menghubungkan ini. env dengan aplikasi
‫simpul kami?
‫Jadi kita memerlukan
‫beberapa cara untuk membaca variabel-variabel ini dari file ini
‫dan kemudian menyimpannya sebagai variabel lingkungan.
‫Karena sekarang ini hanyalah sebuah file
‫teks dan node JS tidak memiliki cara untuk mengetahui bahwa variabel-variabel ini ada di sini.
‫Dan untuk itu standarnya adalah menggunakan paket
‫npm bernama . lingkungan
‫Jadi instal npm. env, baiklah,
‫mari
‫kita pergi
‫ke server kita dan benar-benar membutuhkan modul itu.
‫Jadi konst. env sama dengan
‫membutuhkan. env, sangat sederhana.
‫Dan di sini
‫kita cukup menggunakan variabel dotenv yang
‫disebut config di atasnya dan kemudian di sana kita hanya perlu melewati sebuah
‫objek untuk menentukan jalur di mana file konfigurasi kita berada.
‫Jadi jalan, konfigurasi
‫dotenv.
‫Jadi apa yang akan
‫dilakukan perintah ini
‫sekarang adalah membaca variabel kita dari file dan menyimpannya ke dalam variabel lingkungan node JS.
‫Jadi sekarang mari kita jalankan npm
‫start dan itu akan memblokir
‫semua variabel lingkungan kita ke konsol karena baris kode ini.
‫Jadi mari kita tunggu, dan memang di sini
‫kita memiliki nodeenv, kita memiliki
‫port, kata sandi, dan tentu saja sisa data harus ada di suatu tempat
‫di sini di dalam daftar raksasa ini.
‫Tidak masalah di mana ia berada di sini.
‫Jadi pengguna sebenarnya adalah Jonas. io sudah jadi kita harus
‫memanggil ini di sini nama pengguna.
‫Kemudian simpan ulang
‫ini di sini untuk menjalankan kembali server, dan sekarang kami
‫memiliki nama pengguna di sini dan ini adalah empat variabel
‫lingkungan yang didefinisikan dalam file kami.
‫Bagus, dan untuk menyelesaikannya, sekarang mari kita lanjutkan dan gunakan
‫variabel nodeenv ini dan juga variabel port.
‫Dan untuk melakukan itu kita masuk ke app. js dan di suatu tempat di sini
‫port harus didefinisikan dan di suatu tempat di sini kita memiliki middleware
‫logger lisan dan apa yang
‫ingin saya lakukan sekarang adalah hanya menjalankan middleware
‫itu sehingga hanya mendefinisikannya ketika kita
‫benar-benar dalam pengembangan, sehingga login tidak terjadi ketika
‫aplikasi dalam produksi.
‫Jadi kami memilikinya di sini, jadi
‫mari kita lanjutkan
‫dan katakan jika proses. lingkungan nodeenv sama dengan pengembangan
‫dengan baik hanya kemudian gunakan Morgan.
‫Sekarang
‫Anda mungkin bertanya-tanya mengapa kami sebenarnya memiliki akses ke variabel
‫lingkungan ini di sini ketika kami tidak benar-benar mendefinisikannya di file ini tetapi di server. js.
‫Dan jawabannya adalah bahwa pembacaan variabel dari
‫file yang terjadi di sini ke proses node
‫hanya perlu terjadi sekali.
‫Itu kemudian dalam proses dan prosesnya
‫tentu sama tidak peduli apa file kita.
‫Jadi kita selalu dalam
‫proses yang sama dan variabel lingkungan sedang dalam proses.
‫Jadi proses yang sedang berjalan, jadi
‫tempat aplikasi kita berjalan selalu
‫sama dan ini tersedia untuk kita di setiap
‫file dalam proyek.
‫Jadi beginilah cara kita menggunakan variabel ini, sekarang
‫mari kembali ke server dan katakanlah portnya
‫harus yang berasal
‫dari variabel lingkungan atau 3.000 ini.
‫Jadi proses. lingkungan pelabuhan atau 3.000.
‫Sekarang ada yang salah di sini, mari kita lihat, dan oh
‫saya lihat saya sudah menggunakan 8.000 di beberapa aplikasi
‫lain yang berjalan di suatu tempat
‫di komputer saya.
‫Jadi biarkan saya benar-benar melanjutkan dan mengubahnya
‫di sini menjadi 3.000 juga.
‫Tapi itu tidak terlalu penting, Anda dapat meninggalkan Anda di 8.000
‫jika itu berhasil untuk Anda.
‫Hapus di sini, simpan lagi, dan sekarang berfungsi.
‫Anda juga dapat menyingkirkan konsol ini. log di sini karena kita
‫tidak perlu melihat variabel-variabel ini sepanjang waktu.
‫Dan sekarang mari kita lakukan permintaan http
‫dengan cepat untuk melihat apakah logger kita masih berfungsi dan saya akan
‫melakukannya lagi di sini tukang
‫pos, jadi yang ini, kembali, dan sekarang login kita hilang.
‫Nah mari kita lihat mengapa.
‫Jadi kami memilikinya di sini dalam pengembangan yang benar.
‫Dan ini seharusnya benar-benar berfungsi, jadi ini
‫juga benar di sini, pengembangan.
‫Nah mari kita lakukan konsol. log
‫dan lihat tier, tapi kami
‫tidak terdefinisi di sini.
‫Jadi mari kita periksa apa yang terjadi di sini, dan
‫ya, saya melihat masalahnya
‫yaitu kita
‫benar-benar memerlukan file aplikasi sebelum variabel lingkungan kita dibaca dari file konfigurasi.
‫Dan karena itu perlu sebaliknya.
‫Jadi izinkan saya memindahkannya ke sini dan
‫kemudian hanya setelah itu kami ingin menjalankan kode
‫yang ada di file up.
‫Dan baru setelah itu kita ingin menjalankan
‫kode yang ada di file up.
‫Jadi sekali lagi kami tidak dapat membaca variabel
‫proses di dalam app. js karena belum dikonfigurasi.
‫Jadi jika kita menyimpannya sekarang, maka memang Anda
‫melihat perkembangan di sini.
‫Dan jika kita melakukan permintaan kita sekarang, mari kita kirimkan, maka
‫tentu saja kita mendapatkan logger kita kembali.
‫Jadi itu bekerja sekarang.
‫Dan sekarang akhirnya sebagai
‫tes terakhir, mari tambahkan skrip start baru ke package.json kita. json.
‫Jadi sekarang kami telah memulai server nodemon, tetapi saya juga
‫ingin menambahkan satu lagi untuk produksi agar
‫kami dapat menguji apa yang terjadi dalam situasi itu.
‫Jadi mulailah prod, dan
‫izinkan saya memanggil yang lain dev, dan dalam produksi
‫kami hanya ingin mengatur variabel nodeenv ke produksi.
‫Jadi nodenv sama
‫dengan produksi dan sisanya sama.
‫Jadi
‫nodenv, server. js.
‫Jadi mari kita
‫selesaikan yang ini di sini npm run
‫start production.
‫Dan sekarang
‫Anda melihat bahwa variabel nodeenv kami sebenarnya diatur ke produksi.
‫Jadi itu berasal dari konsol ini. masuk di sini.
‫Dan jika sekarang
‫melakukan permintaan ini, kami tidak akan mendapatkan logger kami.
‫Jadi di sini tidak seperti dulu.
‫Jadi ini pada dasarnya bagaimana kami menjalankan
‫kode yang berbeda tergantung apakah kami sedang dalam pengembangan atau produksi.
‫Jadi mari kita singkirkan yang ini
‫di sini, kita bisa
‫menutup yang ini juga, jadi mari kita kembali
‫ke skrip pengembangan kita, jadi npm run start
‫dev dan baiklah kita sampai di sini.
‫Hanya satu tes
‫terakhir dan memang inilah hasil login kami.
‫Jadi itu saja untuk variabel lingkungan, mari kita beralih ke
‫kuliah terakhir di bagian ini.