Aplinkos kintamasis pateikia informaciją apie aplinką, kurioje vyksta procesas. Jie konfigūruoja serverio prievadus ir duomenų bazių ryšius, slepia slaptus duomenis, pvz., API raktus, ir daug daugiau.

„NestJS“ aplinkos kintamųjų skaitymo būdas skiriasi nuo standartinio „NodeJS“ dotenv paketo.

„NestJS“ konfigūracijos modulis leidžia valdyti aplinkos kintamuosius vos keliais veiksmais.

1 veiksmas: Priklausomybių diegimas

„NestJS“ suteikia tam skirtą @nestjs/config paketą, kuris naudoja dotenv pakuotė po gaubtu. Šis nulinės priklausomybės paketas įkelia aplinkos kintamuosius iš a .env failą į procesas.aplink. Procesas.env objektas yra visuotinis kintamasis, įvedamas vykdymo metu, kad galėtų naudoti jūsų programą.

Įdiekite „NestJS“ konfigūracijos paketą paleisdami:

npm diegimas @nestjs/config

„NestJS“ konfigūracijos paketas veikia programai pateikdamas konfigūracijos modulį ir konfigūravimo paslaugą. Konfigūracijos modulis nurodo .env pateikite paraišką skaityti. Tuo pačiu metu konfigūravimo paslauga atskleidžia informaciją viduje .env failą į likusią programos dalį.

instagram viewer

2 veiksmas: sukurkite ENV failus

Aplinkos kintamųjų saugojimas faile leidžia lengvai pasiekite juos bet kuria kalba, skirtingose ​​OS. Galite valdyti jų versijas .env failus, todėl jie padidina projekto perkeliamumą ir gali palengvinti derinimo problemas.

NestJS metodas kuriant .env failus skiriasi nuo oficialios dotenv rekomendacijos. Remiantis dotenv dokumentacija, programoje neturėtumėte sukurti daugiau nei vieno .env failo. „NestJS“ leidžia sukurti kelis .env failus skirtingais pavadinimais.

Kaip gera praktika, visada turėtumėte sukurti .env failus savo projekto šakniniame kataloge ir įtraukti juos į savo .gitignore failą.

Nėra specialaus būdo sukurti .env failą – tiesiog sukurkite ir redaguokite juos naudodami įprastą teksto rengyklę, tačiau jie turi prasidėti .env. Pavyzdžiui, .aplinkos plėtra.

3 veiksmas: konfigūravimo modulio nustatymas

Atlikite toliau pateiktą veiksmą, kad nustatytumėte konfigūravimo modulį visame pasaulyje ir nurodytumėte .env keliai:

  1. Jūsų projekto šakniniame modulyje (app.modue.ts) failą, importuoti ConfigModule@nestjs/config.
  2. Papildyti ConfigModule tavo importas masyvą ir skambinkite forRoot metodas ant jo.
  3. Perduokite konfigūracijos objektą į forRoot metodas, su an yra pasaulinis nuosavybė į tiesa. Ši parinktis bendrina konfigūraciją su kitais jūsų programos moduliais, tai reiškia, kad jums nereikės jos nustatyti daugiau nei vieną kartą.
  4. Nurodykite savo envFilePath savo konfigūracijos objekte. Ši savybė gali būti eilutė (jei tokią turite .env failas) arba masyvas, kuriame yra visi jūsų .env failus ir nurodys konfigūracijos moduliui, kurių failų ieškoti.
// app.module.ts
@Modulis({
importas: [
ConfigModule.Už Šaknį({
isGlobal: tiesa,
envFilePath: 'Jūsų .env failo (-ų) pavadinimas (-ai)',
}),

4 veiksmas: naudokite Config Service aplinkos kintamiesiems skaityti

Norėdami pasiekti konfigūracijos vertes, pradėkite importuodami ConfigService@nestjs/config. Įšvirkškite jį į klasės konstruktorius paskelbdamas a privatus kintamasis ir priskyrimas ConfigService kaip jo rūšis.

Pavyzdžiui:

konstruktorius(privati ​​konfigūracija: ConfigService) {}

Norėdami pasiekti kintamąjį, skambinkite gauti metodas ant ConfigService ant tavo privatus kintamasis. Perduokite jam reikalingą duomenų tipą kaip bendrąjį ir aplinkos kintamojo, kurį norite pasiekti, pavadinimą.

Pavyzdžiui:

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

The ConfigService ieško reikšmės pavadinimu „ENV_VALUE“ ir grąžina jos reikšmę.

Atkreipkite dėmesį, kad jei du .env failuose yra tas pats nuosavybės pavadinimas, pirmasis nurodytas envFilePath bus teikiama pirmenybė.

Aplinkos kintamųjų svarba

Aplinkos kintamieji yra esminė programos dalis, ypač sudėtingesnėse programose. Jie leidžia valdyti programos konfigūraciją naudojant lengvai suprantamą bendrą mechanizmą.

Aplinkos kintamuosius galite naudoti norėdami valdyti visus konfigūracijos aspektus. Nuo skirtingų duomenų bazės nustatymų iki jautrių duomenų, pvz., API raktų ir kredencialų, jie leidžia keisti konfigūraciją neliečiant pagrindinio šaltinio kodo.