Nest 学习笔记:访问环境变量
@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',
}),