Vides mainīgais sniedz informāciju par vidi, kurā darbojas process. Tie konfigurē servera portus un datu bāzes savienojumus, slēpj sensitīvus datus, piemēram, API atslēgas, un daudz ko citu.

NestJS veids, kā lasīt vides mainīgos, atšķiras no NodeJS standarta dotenv pakotnes.

NestJS konfigurācijas modulis ļauj pārvaldīt vides mainīgos, veicot tikai dažas darbības.

1. darbība: atkarību instalēšana

NestJS nodrošina īpašu @nestjs/config pakotne, kas izmanto dotenv iepakojums zem pārsega. Šī nulles atkarības pakotne ielādē vides mainīgos no a .env failu process.env. Process.env objekts ir globāls mainīgais, kas tiek ievadīts izpildlaikā jūsu lietojumprogrammas lietošanai.

Instalējiet NestJS konfigurācijas pakotni, izpildot:

npm instalēšana @nestjs/config

NestJS konfigurācijas pakotne darbojas, lietojumprogrammai pakļaujot konfigurācijas moduli un konfigurācijas pakalpojumu. Konfigurācijas modulis norāda .env iesniedziet lietojumprogrammu lasīšanai. Tajā pašā laikā konfigurācijas pakalpojums atklāj informāciju iekšpusē .env failu pārējai lietojumprogrammas daļai.

instagram viewer

2. darbība: izveidojiet ENV failus

Vides mainīgo glabāšana failā ļauj jums viegli piekļūt tiem no jebkuras valodas, dažādās operētājsistēmās. Jūs varat kontrolēt šīs versijas .env failus, tādējādi tie palielina projekta pārnesamību un var atvieglot atkļūdošanas problēmas.

NestJS pieeja .env failu izveidei atšķiras no oficiālā dotenv ieteikuma. Saskaņā ar dotenv dokumentāciju lietojumprogrammā nevajadzētu izveidot vairāk par vienu .env failu. NestJS ļauj izveidot vairākus .env failus ar dažādiem nosaukumiem.

Kā laba prakse vienmēr ir jāizveido .env faili sava projekta saknes direktorijā un jāiekļauj tie savā .gitignore failu.

Nav īpaša veida, kā izveidot .env failu — vienkārši izveidojiet un rediģējiet tos, izmantojot parasto teksta redaktoru, taču tiem jāsākas ar .env. Piemēram, .env.development.

3. darbība: konfigurācijas moduļa iestatīšana

Veiciet tālāk norādīto darbību, lai globāli iestatītu konfigurācijas moduli un norādītu .env ceļi:

  1. Jūsu projekta saknes modulī (app.modue.ts) failu, importēt ConfigModule no @nestjs/config.
  2. Pievienot ConfigModule uz tavu imports masīvs un zvaniet uz forRoot metode par to.
  3. Nododiet konfigurācijas objektu uz forRoot metode, ar an ir globāls īpašumu uz taisnība. Šī opcija koplieto konfigurāciju, izmantojot citus jūsu lietojumprogrammas moduļus, kas nozīmē, ka jums tā nebūs jāiestata vairāk kā vienu reizi.
  4. Norādiet savu envFilePath savā konfigurācijas objektā. Šis rekvizīts var būt virkne (ja jums tāda ir .env fails) vai masīvs, kurā ir viss jūsu .env failus un pateiks konfigurācijas modulim, kurus failus meklēt.
// app.module.ts
@Modulis({
imports: [
ConfigModule.forRoot({
isGlobal: taisnība,
envFilePath: 'Jūsu .env faila(-u) nosaukums(-i)',
}),

4. darbība: izmantojiet pakalpojumu Config, lai lasītu vides mainīgos

Lai piekļūtu konfigurācijas vērtībām, sāciet ar importēšanu ConfigService no @nestjs/config. Injicējiet to klases konstruktors paziņojot a Privāts mainīgais un piešķiršana ConfigService kā tā veids.

Piemēram:

konstruktors(privātā konfigurācija: ConfigService) {}

Lai piekļūtu mainīgajam, zvaniet uz gūt metode uz ConfigService uz tava Privāts mainīgs. Nododiet tai nepieciešamo datu tipu kā vispārīgu un tā vides mainīgā nosaukumu, kuram vēlaties piekļūt.

Piemēram:

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

The ConfigService meklē vērtību ar nosaukumu “ENV_VALUE” un atgriež tās vērtību.

Ņemiet vērā, ka, ja divi .env failos ir viens un tas pats rekvizīta nosaukums, pirmais, kas norādīts envFilePath būs prioritāte.

Vides mainīgo nozīme

Vides mainīgie ir būtiska programmas sastāvdaļa, jo īpaši sarežģītākos lietojumos. Tie ļauj kontrolēt programmas konfigurāciju, izmantojot viegli saprotamu, kopīgu mehānismu.

Varat izmantot vides mainīgos, lai kontrolētu visus konfigurācijas aspektus. No dažādiem datu bāzes iestatījumiem līdz sensitīviem datiem, piemēram, API atslēgām un akreditācijas datiem, tie ļauj mainīt konfigurāciju, nepieskaroties pamatā esošajam avota kodam.