Egy alkalmazás fejlesztése során van néhány adat, mely attól függően, hogy milyen környezetben futtatjuk a kódunkat eltérő lehet vagy magához a kódbázis sikeres futtatásához szükséges környezeti információkat tartalmazza. Ezeket hívjuk környezeti változóknak, melyek segítenek nekünk az alkalmazásunk konfigurálásának a beállításához.
Az elsőre példa pl. a port száma, mely különbözik ha a saját gépünkün fejlesztünk (localhost) és vélhetően más lesz, amikor az alkalmazásunk már egy éles szerveren fut.
A másodikra példa egy adatbázis kapcsolat kapcsolati sztringje vagy egy külső szolgáltatás elérését biztosító végponti URL cím.
Ezeket a környezeti változókat a kódbázisunktól külön egy .env fáljban tároljuk és ezt a fájlt nem is töltjük fel a szerverünkre, ezért a .env szerepelni fog a .gitignore fájlunkban.
A Javascriptben ezekhez a környezeti változókhoz a dotenv module segítségével férünk hozzá a .env fájlból.
A dotenv module a környezeti változókat a .env fájlból betölti a process.env változóba, mely a NodeJS process objektumának env property-je, így innen már bármelyik fájl hozzáfér majd a változó értékeihez.
Egy példa a .env fájlra.
PORT = 3000
HOST = localhost
DATABASE_HOST = https://valami.mongodb.net/
DATABASE = products
Nem kell használnunk pontosvesszőt, idézőjelet, semmit, csak leíró jelölésként megadjuk a változókat. Konvenció, hogy a változó neveket nagy betűvel írjuk. # használatával írhatunk kommentet, üresen is hagyhatjuk a változó értékét, ekkor üres sztring lesz a párszolt értéke és használhatunk idétzőjelet is, de akkor az megmarad a változó értékében.
Először installáljuk npm segítségével
npm i dotenv
majd az irányitó file-ban (nálam általában app.js) az importok között importáljuk a modult.
require('dotenv').config();
Ez a parancs betölti a dotenv könyvtárat és meghívja annak a config() metódusát, mely betölti a környezeti változókat a .env fájlból a NodeJS process.env változójába, így a kódbázisban ezt felhasználva már hozzáférhetünk a környezeti változók értékeihez.
Példa a fenti .env file értékeinek az app.js fájlban történő felhasználásara.
Nem feltétlenül szükséges importálnunk a dotenv könyvtárat az app.js-be, de ekkor a paracssoron keresztül kell ezt megtennünk, ekkor maga az operációs rendszer végzi ezt el. A parancssoron keresztül fel is vihetünk környezeti változókat ( Windows: set, Linux: export).
node -r dotenv/config app.js