Šta su promenjive okruženja

Promenljive okruženja (eng. “Environment Variables“) koriste se na različitim mestima u razvoju softvera i IT infrastrukturi, kao npr. kod: operativnih sistema (“PATH” promenjiva koja definiše direktorijume u kojima operativni sitem traži izvršne fajlove), razvoja softvera (promenljive za čuvanje konfiguracionih parametara kao što su API ključevi, baze podataka, URL-ovi..), bezbednost (za čuvanje poverljivih informacija umesto hardkodovanja u aplikacioni kod).

env

Promenjive okruženja u Node

Promenjive okruženja su ključne komponente za rad sa Node.js aplikacijama, omogućavaju konfiguraciju aplikacije bez potrebe za menjanjem koda. Posebno korisna alatka pri radu sa različitim okruženjima (razvoj, testiranje ili produkcija).

Setovanje vrednosti promenjivih

Promenjive okružanja možete setovati na dva načina:

  1. Direktno u komandnoj liniji terminala
    • Unix/Linux:
    • Windows
  2. Unutar posebnih fajlova (.env )

    Sa korišćenjem jednog fajla mi grupišemo sve promenjive i tako omogućavamo bolju organizaciju.

Dostupnost promenjivih

Da bi promenjiva bila dostupna negde u kodu aplikacije potrebno je da je naš kod ima pristup .env fajlu. Pristup promenjivama iz .env fajla se ostvaruje preko objekta “process”. To je globalni objekat koji pruža informacije i kontrolu nad trenutnim radnim procesom Node.js aplikacije. On je deo standardne Node.js biblioteke i dostupan je u svim modulima bez potrebe za uključivanjem dodatnih paketa. Za učitavanje (environment) promenljivih iz .env fajla u process.env je potrebno da instaliramo dotenv paket:

Učitavanje sadržaja .env u process.env objekat

Nakon instalacije dotenv paketa, možemo da pozovemo metodu dotenv.config() koja će učitati sadržaj .env datoteke u “process.env”objekat. Pozivanje config() metode se može uraditi na dva načina:

  1. Pozivanje config() metode iz koda:

  2. Koristeći skriptu u okviru package.json fajla:

    NAPOMENA:
    Ako se env-file setuje u okviru script-e u package.json fajlu, tada nije potrebno da se poziva config() metoda u samom kodu!!!

Tek nakon toga se mogu koristiti ove statičke promenjive bilo gde u kodu na sledeći način:

NAPOMENA:
.env datoteku treba dodati u .gitignore fajl kako bi se izbeglo njeno deljenje sa verzionim kontrolama, čime se štite osetljive informacije. Obratite pažnju da se u produkciji ne zaboravi da se “ručno” napravi novi .env fajl jer se on ne šalje sa git-om !!!

Putanja do promenjive (“path”)

Ponekad je korisno imati različite .env datoteke za različita okruženja, na primjer, .env.development, .env.test, .env.production. Možeš učitati odgovarajuću datoteku na osnovu trenutnog okruženja na više načina:

Takodje dobro je da se tip okruženja definiše na nivou aplikacije, a to možemo uraditi na više načina.

  1. Direktno u kodu pri pozivanju config() metode, kada joj se prosledi path:
  2. Definisati odgovarajući fajl u okviru skripti u package.json fajlu:
    ili npr.

    NAPOMENA:
    Ako se env-file setuje u okviru script-e u package.json fajlu, tada nije potrebno da se poziva config() metoda u samom kodu!!!
  3. Definisati NODE_ENV promenjivu, pa na osnovu nje dobijati path sa path: .env.${env} :

    • Definisanje NODE_ENV promenjive u samom .env fajlu:
    • Definisanje NODE_ENV promenjive u terminalu pre pokretanja aplikacije:
    • Definisanje NODE_ENV promenjive u okviru skripte u package.json fajlu:
      ili npr.

    Nakon čega možemo koristi na sledeći način:

Podelite:

Ostavite komentar