Premenná prostredia poskytuje informácie o prostredí, v ktorom proces beží. Konfigurujú serverové porty a databázové pripojenia, skrývajú citlivé údaje, ako sú kľúče API a oveľa viac.

Spôsob čítania premenných prostredia NestJS sa líši od štandardného balíka dotenv od NodeJS.

Konfiguračný modul NestJS vám umožňuje spravovať premenné prostredia v niekoľkých krokoch.

Krok 1: Inštalácia závislostí

NestJS poskytuje vyhradené @nestjs/config balík, ktorý používa dotenv balík pod kapotou. Tento balík s nulovou závislosťou načíta premenné prostredia z a .env súbor do process.env. Objekt process.env je globálna premenná vložená za behu na použitie vašej aplikácie.

Nainštalujte konfiguračný balík NestJS spustením:

inštalácia npm @nestjs/config

Konfiguračný balík NestJS funguje tak, že aplikácii odkryje konfiguračný modul a konfiguračnú službu. Konfiguračný modul špecifikuje .env podať žiadosť na čítanie. Konfiguračná služba zároveň sprístupňuje informácie vo vnútri .env súbor do zvyšku aplikácie.

Krok 2: Vytvorenie súborov ENV

Ukladanie premenných prostredia do súboru vám to umožňuje jednoduchý prístup k nim z akéhokoľvek jazykav rôznych operačných systémoch. Tieto verzie môžete ovládať .env súbory, takže zvyšujú prenosnosť projektu a môžu zmierniť problémy s ladením.

Prístup NestJS na vytváranie súborov .env sa líši od oficiálneho odporúčania dotenv. Podľa dokumentácie dotenv by ste v aplikácii nemali vytvárať viac ako jeden súbor .env. NestJS vám umožňuje vytvárať viaceré súbory .env s rôznymi názvami.

Ako osvedčený postup by ste mali vždy vytvoriť súbory .env v koreňovom adresári projektu a zahrnúť ich do svojho .gitignore súbor.

Neexistuje žiadny špeciálny spôsob, ako vytvoriť súbor .env – stačí ho vytvoriť a upraviť pomocou bežného textového editora – ale musia začínať príponou .env. Napríklad, .env.vývoj.

Krok 3: Nastavenie modulu Config

Postupujte podľa krokov nižšie, aby ste globálne nastavili svoj konfiguračný modul a špecifikovali .env cesty:

  1. V koreňovom module vášho projektu (app.modue.ts) súbor, import ConfigModule od @nestjs/config.
  2. Pridať ConfigModule tvojmu dovoz pole a zavolajte forRoot metóda na ňom.
  3. Odovzdajte konfiguračný objekt do forRoot metóda s an isGlobal majetok do pravda. Táto možnosť zdieľa konfiguráciu prostredníctvom ostatných modulov vo vašej aplikácii, čo znamená, že ju nebudete musieť nastavovať viackrát.
  4. Uveďte svoje envFilePath vo vašom konfiguračnom objekte. Táto vlastnosť môže byť reťazec (ak ho máte .env súbor) alebo pole obsahujúce všetky vaše .env súbory a povie konfiguračnému modulu, ktoré súbory má hľadať.
// app.module.ts
@Modul({
dovoz: [
ConfigModule.forRoot({
isGlobal: pravda,
envFilePath: 'Názov (názvy) vášho súboru (súborov) .env',
}),

Krok 4: Použitie služby Config na čítanie premenných prostredia

Ak chcete získať prístup k hodnotám konfigurácie, začnite importovaním ConfigService od @nestjs/config. Vstreknite ho do konštruktér triedy vyhlásením a súkromné premenná a priraďovanie ConfigService ako jeho typ.

Napríklad:

konštruktér(súkromná konfigurácia: ConfigService) {}

Ak chcete získať prístup k premennej, zavolajte na dostať metóda na ConfigService na tvojom súkromné premenlivý. Odovzdajte mu požadovaný typ údajov ako generický a názov premennej prostredia, ku ktorej chcete pristupovať.

Napríklad:

const envVar = this.config.get<reťazec>('ENV_VALUE');

The ConfigService hľadá hodnotu s názvom „ENV_VALUE“ a vráti jej hodnotu.

Všimnite si, že ak dva .env súbory obsahujú rovnaký názov vlastnosti, prvý uvedený v súbore envFilePath bude mať prednosť.

Význam premenných prostredia

Premenné prostredia sú nevyhnutnou súčasťou programu, najmä v zložitejších aplikáciách. Umožňujú vám ovládať konfiguráciu vášho programu pomocou ľahko zrozumiteľného bežného mechanizmu.

Premenné prostredia môžete použiť na ovládanie všetkých aspektov konfigurácie. Od rôznych nastavení databázy až po citlivé údaje, ako sú kľúče API a poverenia, vám umožňujú meniť konfiguráciu bez toho, aby ste sa dotkli základného zdrojového kódu.