Skip to content

设置配置

为项目添加配置设置,主要用来存储环境变量。

配置的说明,这里只用来管理env文件中的变量。

准备工作

创建.env文件,并添加配置项。

bash
# 基础环境配置
NODE_ENV = 'production'
PORT = 4598

安装配置包和引入、使用

安装依赖包后,在app.module.ts中引入,在不同文件中使用方法不同。

安装

shell
npm i --save @nestjs/config

引入

在 config/configuration.ts 中自定义配置文件

app.module.ts
ts
export default () => ({
  port: parseInt(process.env.PORT, 10) || 3000,
  database: {
    host: process.env.DATABASE_HOST,
    port: parseInt(process.env.DATABASE_PORT, 10) || 5432
  }
});

在app.module.ts 中引入

app.module.ts
ts
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import configuration from '@/config/configuration'

@Module({
  imports: [ConfigModule.forRoot({
    isGlobal: true, // 全局可用
    load: [configuration], // 自定义配置
    envFilePath: '.development.env', // 加载指定的env文件
    // 加载多个env文件,在多个文件中找到一个变量,则第一个优先。
    envFilePath: ['.env.development.local', '.env.development'], 
  })],
})
export class AppModule {}

使用

在main.ts中使用

ts
const configService = app.get(ConfigService);
const port = configService.get('port');

在 controller 和 service 中使用

ts
import { ConfigService } from '@nestjs/config'; 
export class UserService {
  constructor(private configService: ConfigService) {} 

  findAll() {
    console.log(this.configService.get('port')); 
    return `This action returns all user`;
  }
}