En miljøvariabel gir informasjon om miljøet en prosess kjører i. De konfigurerer serverporter og databasetilkoblinger, skjuler sensitive data som API-nøkler og mye mer.

NestJS-måten for å lese miljøvariabler er forskjellig fra NodeJS sin standard dotenv-pakke.

NestJS-konfigurasjonsmodulen lar deg administrere miljøvariablene dine i bare noen få trinn.

Trinn 1: Installere avhengigheter

NestJS gir en dedikert @nestjs/config pakke som bruker dotenv pakke under panseret. Denne nullavhengighetspakken laster inn miljøvariabler fra en .env fil inn process.env. Process.env-objektet er en global variabel som injiseres under kjøring for applikasjonens bruk.

Installer NestJS-konfigurasjonspakken ved å kjøre:

npm installere @nestjs/config

NestJS config-pakken fungerer ved å eksponere en config-modul og en config-tjeneste for applikasjonen. Konfigurasjonsmodulen spesifiserer .env arkiver applikasjonen for å lese. Samtidig avslører config-tjenesten informasjonen inne i .env fil til resten av søknaden.

Trinn 2: Opprette ENV-filer

Lagre miljøvariabler i en fil lar deg få tilgang til dem enkelt fra alle språk, på tvers av forskjellige operativsystemer. Du kan versjonskontrollere disse .env filer, slik at de øker prosjektportabiliteten og kan lette feilsøkingsproblemer.

NestJS-tilnærmingen for å lage .env-filer skiller seg fra den offisielle dotenv-anbefalingen. I følge dotenv-dokumentasjonen bør du ikke opprette mer enn én .env-fil i en applikasjon. NestJS lar deg lage flere .env-filer med forskjellige navn.

Som god praksis bør du alltid opprette .env-filer i prosjektets rotkatalog og inkludere dem i din .gitignore fil.

Det er ingen spesiell måte å lage en .env-fil på – bare opprett og rediger dem med ditt vanlige tekstredigeringsprogram – men de må starte med .env. For eksempel, .env.utvikling.

Trinn 3: Sette opp konfigurasjonsmodulen

Følg trinnet nedenfor for å sette opp konfigurasjonsmodulen globalt og spesifisere .env stier:

  1. I prosjektets rotmodul (app.modue.ts) fil, importer ConfigModule fra @nestjs/config.
  2. Legge til ConfigModule til din import array og ring for Root metode på det.
  3. Send et konfigurasjonsobjekt til for Root metode, med en er Global eiendom til ekte. Dette alternativet deler konfigurasjonen gjennom de andre modulene i applikasjonen din, noe som betyr at du ikke trenger å sette den opp mer enn én gang.
  4. Spesifiser din envFilePath i konfigurasjonsobjektet ditt. Denne egenskapen kan enten være en streng (hvis du har en .env fil) eller en matrise som inneholder alle dine .env filer og vil fortelle konfigurasjonsmodulen hvilke filer de skal se etter.
// app.module.ts
@Modul({
importerer: [
ConfigModule.forRoot({
isGlobal: ekte,
envFilePath: 'Navn(e) på .env-fil(er)',
}),

Trinn 4: Bruke Config-tjenesten til å lese miljøvariabler

Start med å importere for å få tilgang til konfigurasjonsverdiene ConfigService fra @nestjs/config. Sprøyt den inn i klasses konstruktør ved å erklære en privat variabel og tilordning ConfigService som sin type.

For eksempel:

konstruktør(privat konfigurasjon: ConfigService) {}

For å få tilgang til en variabel, ring metode på ConfigService på din privat variabel. Gi den datatypen du trenger som en generisk, og navnet på miljøvariabelen du vil ha tilgang til.

For eksempel:

const envVar = this.config.get<streng>('ENV_VALUE');

De ConfigService ser etter en verdi med navnet «ENV_VALUE» og returnerer verdien.

Merk at hvis to .env filer inneholder samme egenskapsnavn, den første spesifisert i envFilePath vil ha forrang.

Viktigheten av miljøvariabler

Miljøvariabler er en viktig del av et program, spesielt i mer komplekse applikasjoner. De lar deg kontrollere programmets konfigurasjon gjennom en lettfattelig, vanlig mekanisme.

Du kan bruke miljøvariabler til å kontrollere alle aspekter av konfigurasjonen. Fra forskjellige databaseinnstillinger til sensitive data som API-nøkler og legitimasjon, de lar deg endre konfigurasjon uten å berøre den underliggende kildekoden.