Променлива на средата предоставя информация за средата, в която се изпълнява процес. Те конфигурират сървърни портове и връзки към бази данни, скриват чувствителни данни като API ключове и много повече.
Начинът на NestJS за четене на променливи на средата се различава от стандартния пакет dotenv на NodeJS.
Модулът за конфигуриране на NestJS ви позволява да управлявате променливите на вашата среда само с няколко стъпки.
Стъпка 1: Инсталиране на зависимости
NestJS предоставя специален @nestjs/config пакет, който използва dotenv пакет под капака. Този пакет с нулева зависимост зарежда променливи на средата от a .env файл в process.env. Обектът process.env е глобална променлива, инжектирана по време на изпълнение за използване от вашето приложение.
Инсталирайте конфигурационния пакет NestJS, като стартирате:
npm инсталирайте @nestjs/config
Конфигурационният пакет NestJS работи, като излага на приложението конфигурационен модул и услуга за конфигуриране. Конфигурационният модул указва .env подайте заявлението за четене. В същото време услугата за конфигуриране разкрива информацията вътре в
.env файл към останалата част от приложението.Стъпка 2: Създаване на ENV файлове
Съхраняването на променливи на средата във файл ви позволява достъпвайте ги лесно от всеки език, в различни операционни системи. Можете да контролирате версиите им .env файлове, така че те увеличават преносимостта на проекта и могат да облекчат проблемите с отстраняването на грешки.
Подходът на NestJS за създаване на .env файлове се различава от официалната препоръка на dotenv. Според документацията на dotenv не трябва да създавате повече от един .env файл в приложение. NestJS ви позволява да създавате множество .env файлове с различни имена.
Като добра практика винаги трябва да създавате .env файлове в главната директория на вашия проект и да ги включвате във вашата .gitignore файл.
Няма специален начин за създаване на .env файл – просто ги създайте и редактирайте с нормалния си текстов редактор, но те трябва да започват с .env. Например, .env.development.
Стъпка 3: Настройване на конфигурационния модул
Следвайте стъпките по-долу, за да настроите своя конфигурационен модул глобално и да посочите .env пътища:
- В основния модул на вашия проект (app.modue.ts) файл, импортиране ConfigModule от @nestjs/config.
- Добавете ConfigModule Към твоя внос масив и извикайте заRoot метод върху него.
- Предайте конфигурационен обект на заRoot метод, с ан е Глобален собственост към вярно. Тази опция споделя конфигурацията чрез другите модули във вашето приложение, което означава, че няма да се налага да я настройвате повече от веднъж.
- Посочете вашите envFilePath във вашия конфигурационен обект. Това свойство може да бъде или низ (ако имате такъв .env файл) или масив, съдържащ всички ваши .env файлове и ще каже на модула за конфигуриране кои файлове да търси.
// app.module.ts
@Модул({
внос: [
ConfigModule.forRoot({
isGlobal: вярно,
envFilePath: 'Име(на) на вашите .env файлове',
}),
Стъпка 4: Използване на Config Service за четене на променливи на средата
За достъп до стойностите на конфигурацията започнете с импортиране ConfigService от @nestjs/config. Инжектирайте го в конструктор на класа чрез деклариране на a частен променлива и присвояване ConfigService като негов тип.
Например:
конструктор(частна конфигурация: ConfigService) {}
За достъп до променлива извикайте получавам метод на ConfigService на твоят частен променлива. Предайте му типа данни, който изисквате като общ, и името на променливата на средата, до която искате да получите достъп.
Например:
const envVar = this.config.get<низ>('ENV_VALUE');
The ConfigService търси стойност с името „ENV_VALUE“ и връща нейната стойност.
Имайте предвид, че ако две .env файловете съдържат едно и също име на свойство, първото, посочено в envFilePath ще има предимство.
Значението на променливите на средата
Променливите на средата са съществена част от програмата, особено в по-сложни приложения. Те ви позволяват да контролирате конфигурацията на вашата програма чрез лесен за разбиране общ механизъм.
Можете да използвате променливи на средата, за да контролирате всички аспекти на конфигурацията. От различни настройки на базата данни до чувствителни данни като API ключове и идентификационни данни, те ви позволяват да промените конфигурацията, без да докосвате основния изходен код.