Spremenljivka okolja zagotavlja informacije o okolju, v katerem se izvaja proces. Konfigurirajo strežniška vrata in povezave z bazo podatkov, skrijejo občutljive podatke, kot so ključi API, in še veliko več.

Način NestJS za branje spremenljivk okolja se razlikuje od standardnega paketa dotenv NodeJS.

Konfiguracijski modul NestJS vam omogoča upravljanje spremenljivk okolja v le nekaj korakih.

1. korak: Namestitev odvisnosti

NestJS ponuja namensko @nestjs/config paket, ki uporablja dotenv paket pod pokrovom. Ta paket ničelne odvisnosti naloži spremenljivke okolja iz a .env datoteko v proces.env. Objekt process.env je globalna spremenljivka, vstavljena med izvajanjem za uporabo vaše aplikacije.

Namestite konfiguracijski paket NestJS tako, da zaženete:

namestitev npm @nestjs/config

Konfiguracijski paket NestJS deluje tako, da aplikaciji izpostavi konfiguracijski modul in konfiguracijsko storitev. Konfiguracijski modul določa .env vložite vlogo za branje. Istočasno konfiguracijska storitev razkrije informacije znotraj .env datoteko v preostali del aplikacije.

instagram viewer

2. korak: Ustvarjanje datotek ENV

Shranjevanje spremenljivk okolja v datoteko vam omogoča do njih preprosto dostopajte iz katerega koli jezika, v različnih operacijskih sistemih. Te lahko nadzirate različice .env datoteke, tako da povečajo prenosljivost projekta in lahko olajšajo težave pri odpravljanju napak.

Pristop NestJS za ustvarjanje datotek .env se razlikuje od uradnega priporočila dotenv. V skladu z dokumentacijo dotenv ne bi smeli ustvariti več kot ene datoteke .env v aplikaciji. NestJS vam omogoča ustvarjanje več datotek .env z različnimi imeni.

Dobra praksa je, da datoteke .env vedno ustvarite v korenskem imeniku projekta in jih vključite v svoj .gitignore mapa.

Ni posebnega načina za ustvarjanje datoteke .env – samo ustvarite in uredite jih z običajnim urejevalnikom besedil – vendar se morajo začeti z .env. na primer .env.razvoj.

3. korak: Nastavitev konfiguracijskega modula

Sledite spodnjim korakom, da nastavite svoj konfiguracijski modul globalno in določite .env poti:

  1. V korenskem modulu vašega projekta (app.modue.ts) datoteka, uvoz ConfigModule od @nestjs/config.
  2. Dodaj ConfigModule na vašo uvoz polje in pokličite zaRoot metoda na njem.
  3. Posredujte konfiguracijski objekt v zaRoot metoda, z an jeGlobalno premoženje do prav. Ta možnost deli konfiguracijo z drugimi moduli v vaši aplikaciji, kar pomeni, da vam je ne bo treba nastaviti več kot enkrat.
  4. Določite svoje envFilePath v vašem konfiguracijskem objektu. Ta lastnost je lahko bodisi niz (če ga imate .env datoteko) ali matriko, ki vsebuje vse vaše .env datotek in bo konfiguracijskemu modulu povedal, katere datoteke naj išče.
// app.module.ts
@Modul({
uvoz: [
ConfigModule.forRoot({
isGlobal: prav,
envFilePath: 'Ime (-a) vaših datotek .env',
}),

4. korak: Uporaba storitve Config za branje spremenljivk okolja

Za dostop do konfiguracijskih vrednosti začnite z uvozom ConfigService od @nestjs/config. Vbrizgajte ga v konstruktor razreda z razglasitvijo a zasebno spremenljivka in dodeljevanje ConfigService kot njegov tip.

Na primer:

konstruktor(zasebna konfiguracija: ConfigService) {}

Za dostop do spremenljivke pokličite dobiti metoda na ConfigService na vašem zasebno spremenljivka. Posredujte mu vrsto podatkov, ki jo potrebujete kot generično, in ime spremenljivke okolja, do katere želite dostopati.

Na primer:

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

The ConfigService poišče vrednost z imenom “ENV_VALUE” in vrne njeno vrednost.

Upoštevajte, da če dva .env datoteke vsebujejo isto ime lastnosti, prvo, navedeno v envFilePath bo imela prednost.

Pomen spremenljivk okolja

Spremenljivke okolja so bistveni del programa, zlasti v bolj zapletenih aplikacijah. Omogočajo vam nadzor nad konfiguracijo vašega programa prek preprostega in običajnega mehanizma.

Za nadzor vseh vidikov konfiguracije lahko uporabite spremenljivke okolja. Od različnih nastavitev zbirke podatkov do občutljivih podatkov, kot so ključi API in poverilnice, omogočajo spreminjanje konfiguracije, ne da bi se dotaknili osnovne izvorne kode.