Process.env: Cara menggunakan variabel lingkungan di node – Codewithaden

Bekerja dengan variabel lingkungan adalah cara yang bagus untuk mengkonfigurasi konfigurasi yang berbeda dari Anda Node.js aplikasi. Banyak host cloud seperti Heroku , Azure, AWS Now.sh, dll., Menggunakan variabel lingkungan simpul. Demikian juga, modul Node.js menggunakan variabel lingkungan. Host, misalnya, akan mengatur PELABUHAN Variabel yang menentukan port mana server harus mendengarkan berfungsi dengan baik. Selain itu, modul mungkin memiliki perilaku yang berbeda (seperti logging) tergantung pada nilai dari Node_env variabel.

Process.env

Itu Process.env adalah variabel global yang disuntikkan oleh Node.js Saat runtime untuk digunakan aplikasi Anda, dan itu menunjukkan keadaan lingkungan sistem aplikasi Anda saat dimulai, saat runtime di aplikasi kami untuk digunakan. Ini menggambarkan keadaan lingkungan sistem aplikasi kami saat dimulai.

Misalnya, jika sistem memiliki JALUR set variabel, ini akan dapat diakses oleh Anda melalui Process.env.Path Variabel yang dapat Anda gunakan untuk memeriksa di mana binari berada dan melakukan panggilan eksternal kepada mereka jika diperlukan.

Mengapa Variabel Lingkungan Sangat Penting dalam Node

Ketika kita menulis kode, kita tidak akan pernah tahu di mana aplikasi kita dapat digunakan. Jika kami memerlukan database dalam pengembangan, kami memutar contohnya dan menautkannya melalui string koneksi, sesuatu seperti 127.0.0.1:3306 . Namun, saat menggunakannya ke server dalam produksi, kita mungkin perlu menautkannya ke server jarak jauh, 32.22.2.1

Sekarang, kita dapat menulis kode yang menghubungkan database menggunakan Process.env mengajukan.

const connection = new Connection(process.env.DB_CONNECTION_STRING); 

Menentukan ketergantungan layanan eksternal memungkinkan kami untuk menautkan ke cluster database yang dilindungi oleh beban jarak jauh, yang dapat skala secara independen dari suatu aplikasi dan memungkinkan kami untuk memiliki banyak contoh aplikasi kami saja dari layanan database.

Dasar -dasar proses.env

Mengakses variabel lingkungan di Node.js didukung di luar kotak. Saat proses Node.js Anda naik, itu akan secara otomatis menyediakan akses ke semua variabel lingkungan yang ada dengan membuat Env objek sebagai properti dari proses objek global.

Saya menggunakan Node.js versi 11. Sekarang, jika Anda belum menginstal node.js, maka silakan instal.

Setelah itu, buat folder dan buat file yang dipanggil app.js dan tambahkan kode berikut.

console.log(process.env); 

Sekarang, buka terminal dan tekan perintah berikut.

What

Kode di atas harus menghasilkan semua variabel lingkungan yang disadari oleh proses node.js ini. Jika kami ingin mengakses satu variabel tertentu, aksesnya seperti properti objek apa pun. Misalnya, mari kita akses properti port.

console.log(process.env.PORT); 

Anda akan melihat tidak terdefinisi output karena kami telah mendefinisikan port tertentu.

Host cloud seperti heroku atau azure menggunakan PELABUHAN Variabel untuk memberi tahu Anda di port mana server Anda harus mendengarkan routing berfungsi dengan benar. Oleh karena itu, lain kali Anda mengatur server web , Anda harus menentukan port untuk mendengarkan dengan memeriksa PELABUHAN Pertama dan memberikan nilai default sebaliknya.

Lihat kode berikut.

// app.js

const app = require('http').createServer((req, res) => res.send('Ahoy!'));
const PORT = process.env.PORT || 4000;

app.listen(PORT, () => {
  console.log(`Server is listening on port: ${PORT}`);
}); 

Dalam kode di atas, kami telah membuat server HTTP, dan server itu berjalan pada port yang ditentukan di .env file atau, secara default, 4000.

Jalankan file dan lihat output.

Basics

Sejak Process.env hanyalah objek biasa, kita dapat dengan mudah mengatur/mengganti nilai.

Secara eksplisit memuat variabel dari file .env.

Kami memiliki dua tingkat untuk bekerja saat berhadapan dengan penyediaan server: 1) Infrastruktur dan 2) tingkat aplikasi. Kami dapat mengatur lingkungan melalui logika tingkat aplikasi atau menggunakan alat untuk menyediakan lingkungan bagi kami.

Alat tingkat aplikasi standar adalah dotenv, yang memungkinkan kami memuat variabel lingkungan dari file bernama .env . Kemudian, kami dapat menginstalnya melalui NPM menggunakan perintah berikut.

npm install dotenv --save 

Setelah itu, tambahkan baris berikut ke bagian paling atas file entri Anda.

require('dotenv').config(); 

Kode di atas akan secara otomatis memuat .env File di root proyek Anda dan inisialisasi nilai. Ini akan melewatkan variabel apa pun yang telah ditetapkan.

Anda tidak boleh menggunakan .env mengajukan di lingkungan produksi Anda; Sebaliknya, atur nilai -nilai langsung pada host masing -masing. Oleh karena itu, Anda mungkin ingin membungkus pernyataan konfigurasi dalam pernyataan jika.

if (process.env.NODE_ENV !== 'production') {
  require('dotenv').config();
} 

Sekarang, buat file yang dipanggil .env dan tambahkan satu baris kode berikut di dalamnya .env mengajukan. Pertama, Anda perlu membuat .env File di root folder proyek Anda.

PORT = 3000 

Sekarang, tulis kode berikut di dalam app.js mengajukan.

// app.js

if (process.env.NODE_ENV !== 'production') {
  require('dotenv').config();
}

const app = require('http').createServer((req, res) => res.send('Ahoy!'));
const PORT = process.env.PORT || 4000;

app.listen(PORT, () => {
  console.log(`Server is listening on port: ${PORT}`);
}); 

Sekarang, jalankan server, dan Anda akan melihat server sedang berjalan Port: 3000 dan tidak pada 4000.

Meskipun ini nyaman untuk kebutuhan pengembangan, dianggap buruk untuk memasangkan lingkungan dengan aplikasi kami, jadi jauhkan dengan menambahkan .env untuk Anda .gitignore mengajukan.

Kami dapat menggunakan alat manajer penempatan seperti PM2, Docker Compose, dan Kubernetes untuk menentukan lingkungan di tingkat infrastruktur.

PM2 menggunakan file ekosistem.yaml di mana Anda dapat menentukan lingkungan menggunakan Env Properti.

apps:
  - script: ./app.js
    name: 'my_application'
    env:
      NODE_ENV: development
    env_production:
      NODE_ENV: production
    ... 

Docker juga menyusun lingkungan properti yang akan ditentukan dalam manifes layanan.

version: "3"
services:
  my_application:
    image: node:8.9.4-alpine
    environment:
      NODE_ENV: production
      ...
    ... 

Kubernetes memiliki setara dengan Env Properti di Pod Template Manifest, yang memungkinkan kita untuk mengatur lingkungan:

kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  name: my_application
spec:
  ...
  template:
    spec:
      env:
        - name: NODE_ENV
          value: production
        ... 

Menggunakan Process.env.* Menghasilkan dengan benar dalam aplikasi yang dapat diuji dengan cepat dan digunakan/diskalakan secara elegan. Jadi, kami telah melihat Process.env di Node.js Sangat dalam dalam artikel ini.

Itu untuk tutorial ini.

Artikel ini berasal dari website Winpoin, dan kemudian diterjemahkan ke bahasa indonesia, baca artikel asli disini

Leave a Reply

Your email address will not be published. Required fields are marked *