En miljövariabel ger information om miljön en process körs i. De konfigurerar serverportar och databasanslutningar, döljer känslig data som API-nycklar och mycket mer.
NestJS sätt att läsa miljövariabler skiljer sig från NodeJS standard dotenv-paket.
NestJS-konfigurationsmodulen låter dig hantera dina miljövariabler i bara några få steg.
Steg 1: Installera beroenden
NestJS tillhandahåller en dedikerad @nestjs/config paket som använder dotenv paket under huven. Detta nollberoendepaket laddar miljövariabler från en .env fil i process.env. Process.env-objektet är en global variabel som injiceras vid körning för din applikations användning.
Installera NestJS-konfigurationspaketet genom att köra:
npm installera @nestjs/config
NestJS config-paketet fungerar genom att exponera en config-modul och en config-tjänst för applikationen. Konfigurationsmodulen specificerar .env arkivera applikationen för att läsa. Samtidigt exponerar config-tjänsten informationen inuti .env fil till resten av ansökan.
Steg 2: Skapa ENV-filer
Genom att lagra miljövariabler i en fil kan du åtkomst till dem enkelt från alla språk, över olika operativsystem. Du kan versionskontrollera dessa .env filer, så att de ökar projektportabiliteten och kan underlätta felsökningsproblem.
NestJS-metoden för att skapa .env-filer skiljer sig från den officiella dotenv-rekommendationen. Enligt dotenv-dokumentationen ska du inte skapa mer än en .env-fil i ett program. NestJS låter dig skapa flera .env-filer med olika namn.
Som god praxis bör du alltid skapa .env-filer i ditt projekts rotkatalog och inkludera dem i din .gitignore fil.
Det finns inget speciellt sätt att skapa en .env-fil – skapa och redigera dem bara med din vanliga textredigerare – men de måste börja med .env. Till exempel, .env.utveckling.
Steg 3: Konfigurera konfigurationsmodulen
Följ steget nedan för att konfigurera din konfigurationsmodul globalt och ange .env vägar:
- I ditt projekts rotmodul (app.modue.ts) fil, importera ConfigModule från @nestjs/config.
- Lägg till ConfigModule till din import array och anropa för Root metod på det.
- Skicka ett konfigurationsobjekt till för Root metod, med en är Global egendom till Sann. Det här alternativet delar konfigurationen genom de andra modulerna i din applikation, vilket innebär att du inte behöver konfigurera den mer än en gång.
- Ange din envFilePath i ditt konfigurationsobjekt. Den här egenskapen kan antingen vara en sträng (om du har en .env fil) eller en array som innehåller alla dina .env filer och kommer att tala om för konfigurationsmodulen vilka filer den ska leta efter.
// app.module.ts
@Modul({
importer: [
ConfigModule.forRoot({
isGlobal: Sann,
envFilePath: 'Namn på dina .env-filer',
}),
Steg 4: Använda Config Service för att läsa miljövariabler
Börja med att importera för att komma åt konfigurationsvärdena ConfigService från @nestjs/config. Injicera det i klassens konstruktör genom att förklara a privat variabel och tilldelning ConfigService som sin typ.
Till exempel:
konstruktör(privat konfiguration: ConfigService) {}
För att komma åt en variabel, anropa skaffa sig metod på ConfigService på din privat variabel. Skicka den datatypen du behöver som en generisk och namnet på miljövariabeln du vill komma åt.
Till exempel:
const envVar = this.config.get<sträng>('ENV_VALUE');
De ConfigService letar efter ett värde med namnet "ENV_VALUE" och returnerar dess värde.
Observera att om två .env filerna innehåller samma egenskapsnamn, det första som anges i envFilePath kommer att ha företräde.
Betydelsen av miljövariabler
Miljövariabler är en viktig del av ett program, särskilt i mer komplexa tillämpningar. De låter dig styra ditt programs konfiguration genom en lättförståelig, vanlig mekanism.
Du kan använda miljövariabler för att kontrollera alla aspekter av konfigurationen. Från olika databasinställningar till känsliga data som API-nycklar och referenser, de låter dig ändra konfiguration utan att röra den underliggande källkoden.