Nest 学习笔记:访问环境变量

Nest
笔记
Node

@nestjs/config

npm install @nestjs/config

在应用模块(AppModule)中导入 ConfigModule。

ConfigModule.forRoot() 方法可以用来全局注册模块,并且可以接受一个配置对象,以指定如何加载 .env 文件。

import { Module } from "@nestjs/common";
import { ConfigModule } from "@nestjs/config";

@Module({
	imports: [
		ConfigModule.forRoot({
			isGlobal: true, // 使配置在全局可用
		}),
	],
	// ...
})
export class AppModule {}

使用 ConfigService 读取环境变量

import { Injectable } from "@nestjs/common";
import { ConfigService } from "@nestjs/config";

@Injectable()
export class SomeService {
	constructor(private configService: ConfigService) {}

	someMethod() {
		// SOME_ENV_VAR 是从 .env 文件或环境中读取的变量名
		const someEnvVar = this.configService.get<string>("SOME_ENV_VAR");
		// 使用环境变量...
	}
}

使用 .env 文件

默认情况下,ConfigModule 会查找项目根目录下的 .env 文件。

通过在 ConfigModule.forRoot() 方法中传递配置来自定义这个行为,例如指定不同的文件名或路径。如果 .env 文件位于项目的 src 文件夹内,可以这样指定路径:

ConfigModule.forRoot({
  isGlobal: true,
  envFilePath: 'src/.env',
}),