Een omgevingsvariabele geeft informatie over de omgeving waarin een proces wordt uitgevoerd. Ze configureren serverpoorten en databaseverbindingen, verbergen gevoelige gegevens zoals API-sleutels en nog veel meer.
De manier waarop NestJS omgevingsvariabelen leest, verschilt van het standaard dotenv-pakket van NodeJS.
Met de NestJS-configuratiemodule kunt u uw omgevingsvariabelen in slechts enkele stappen beheren.
Stap 1: Afhankelijkheden installeren
NestJS biedt een speciale @nestjs/config pakket dat gebruikmaakt van de dotenv pakket onder de motorkap. Dit zero-dependency pakket laadt omgevingsvariabelen van a .env bestand in proces.env. Het object process.env is een globale variabele die tijdens runtime wordt geïnjecteerd voor gebruik door uw toepassing.
Installeer het NestJS-configuratiepakket door het volgende uit te voeren:
npm installeren @nestjs/config
Het NestJS-configuratiepakket werkt door een configuratiemodule en een configuratieservice aan de applicatie bloot te stellen. De configuratiemodule specificeert de
.env dien de aanvraag in om te lezen. Tegelijkertijd onthult de configuratieservice de informatie in de .env bestand naar de rest van de applicatie.Stap 2: ENV-bestanden maken
Door omgevingsvariabelen in een bestand op te slaan, kunt u: gemakkelijk toegang krijgen vanuit elke taal, over verschillende besturingssystemen. U kunt deze versie beheren .env bestanden, zodat ze de overdraagbaarheid van projecten vergroten en problemen met debuggen kunnen verlichten.
De NestJS-aanpak voor het maken van .env-bestanden verschilt van de officiële dotenv-aanbeveling. Volgens de dotenv-documentatie mag u niet meer dan één .env-bestand in een toepassing maken. Met NestJS kun je meerdere .env-bestanden met verschillende namen maken.
Als goede gewoonte moet u altijd .env-bestanden maken in de hoofdmap van uw project en deze opnemen in uw .gitignore het dossier.
Er is geen speciale manier om een .env-bestand te maken - maak en bewerk ze gewoon met uw normale teksteditor - maar ze moeten beginnen met .env. Bijvoorbeeld, .env.ontwikkeling.
Stap 3: De configuratiemodule instellen
Volg de onderstaande stap om uw configuratiemodule globaal in te stellen en specificeer de .env paden:
- In de hoofdmodule van uw project (app.modu.ts) bestand, import Configuratiemodule van @nestjs/config.
- Toevoegen Configuratiemodule aan jouw importeert array en noem de voorRoot methode erop.
- Geef een configuratie-object door aan de voorRoot methode, met een isGlobal eigendom aan WAAR. Deze optie deelt de configuratie via de andere modules in uw applicatie, wat betekent dat u deze niet meer dan één keer hoeft in te stellen.
- Specificeer uw envBestandspad in uw configuratieobject. Deze eigenschap kan ofwel een string zijn (als je die hebt) .env bestand) of een array met al uw .env bestanden en zal de configuratiemodule vertellen naar welke bestanden moet worden gezocht.
// app.module.ts
@Module({
invoer: [
Configuratiemodule.forRoot({
isGlobaal: WAAR,
envFilePath: 'Naam(-en) van uw .env-bestand(en)',
}),
Stap 4: De configuratieservice gebruiken om omgevingsvariabelen te lezen
Om toegang te krijgen tot de configuratiewaarden, begint u met importeren Configuratieservice van @nestjs/config. Injecteer het in de constructor van de klasse door te verklaren a privaat variabel en toewijzend Configuratieservice als zijn soort.
Bijvoorbeeld:
constructeur(privéconfiguratie: ConfigService) {}
Om toegang te krijgen tot een variabele, roept u de krijgen methode op de Configuratieservice op je privaat variabel. Geef het het gegevenstype door dat u als generiek nodig hebt, en de naam van de omgevingsvariabele waartoe u toegang wilt.
Bijvoorbeeld:
const envVar = this.config.get<snaar>('ENV_VALUE');
De Configuratieservice zoekt naar een waarde met de naam "ENV_VALUE" en retourneert de waarde.
Merk op dat als twee .env bestanden dezelfde eigenschapsnaam bevatten, de eerste die is opgegeven in de envBestandspad voorrang zal hebben.
Het belang van omgevingsvariabelen
Omgevingsvariabelen zijn een essentieel onderdeel van een programma, vooral in complexere toepassingen. Ze laten u de configuratie van uw programma beheren via een gemakkelijk te begrijpen, algemeen mechanisme.
U kunt omgevingsvariabelen gebruiken om alle aspecten van de configuratie te beheren. Van verschillende database-instellingen tot gevoelige gegevens zoals API-sleutels en inloggegevens, ze laten je de configuratie wijzigen zonder de onderliggende broncode aan te raken.