1、安装依赖,
-
安装依赖包,使用命令
npm i @nestjs/config, -
在根目录创建.env文件和.env.template文件
APP_ENV=development APP_P0RT=3000 DB_URL=mongodb://mongo:27017 DB_NAME=nest-server DB_USER=XXXX DB_PASS=123456 DB_ENTITY_NAME=mongo DB_SYNCHRONIZE=false DB_LOGGING=true
-
在shared文件夹中,创建configs文件夹,在里面创建configration文件读取env的函数
export default () => ({ env: process.env.APP_ENV, port: process.env.APP_P0RT })
-
同级目录下创建module-options.ts 然后把它模块化
import { ConfigModuleOptions } from '@nestjs/config' import configration from './configration'
export const configModuleOptions: ConfigModuleOptions = { envFilePath: '.env', load: [configration] }
-
然后在shared模块中进行注入,然后在将其导出,可以在全部模块中使用
import { Module } from "@nestjs/common"; import { SystemService } from "./system.service"; import { ConfigModule } from "@nestjs/config"; import { configModuleOptions } from "./configs/module-options";
@Module({ exports: [SystemService,ConfigModule], providers: [SystemService], imports: [ ConfigModule.forRoot(configModuleOptions) ] }) export class ShareModule {}
-
然后在users.controller中使用env,
import { Controller, Get, Post, Body, Patch, Param, Delete, HttpStatus } from '@nestjs/common'; import { ConfigService } from '@nestjs/config' import { UsersService } from './users.service'; import { CreateUserDto } from './dto/create-user.dto'; import { UpdateUserDto } from './dto/update-user.dto'; import { ApiTags,ApiOperation,ApiBearerAuth, ApiResponse} from '@nestjs/swagger' import { SystemService } from 'src/shared/system.service';
@Controller('users') @ApiTags('用户管理') export class UsersController { constructor(private readonly usersService: UsersService,private readonly systemService: SystemService,private readonly configService: ConfigService) {}
@Post() @ApiOperation({ summary: '新增用户', }) @ApiResponse({ status: HttpStatus.CREATED, type: CreateUserDto }) @ApiBearerAuth() create(@Body() createUserDto: CreateUserDto) { return this.usersService.create(createUserDto); }
@Get() findAll() { console.log('configService controller',this.configService.get('env')); return this.usersService.findAll(); }
@Get(':id') findOne(@Param('id') id: string) { return this.usersService.findOne(+id); }
@Patch(':id') update(@Param('id') id: string, @Body() updateUserDto: UpdateUserDto) { return this.usersService.update(+id, updateUserDto); }
@Delete(':id') remove(@Param('id') id: string) { return this.usersService.remove(+id); } }