【NestJs】Config环境配置

138 阅读1分钟

一、环境配置

1.安装@nestjs/config包

npm i --save @nestjs/config

2.安装cross-env

npm i -D cross-env 打开package.json文件 修改script

image.png 将start:dev命令前加上cross-env NODE_ENV=development 使得运行start:dev命令时环境变量设置为development

二、项目结构

src目录中创建common文件夹用于存放公共使用的模块
在common中创建config文件夹并创建config.module.ts (相关配置文件也可以放在config文件夹中) image.png

三、关键代码

import { Module } from '@nestjs/common';
import { ConfigModule as NestConfigModule } from '@nestjs/config';
import * as process from 'node:process';
import * as dotenv from 'dotenv';
import * as Joi from 'joi';
import DbConfig from './db-config';

const envLoads:any[]=[]

envLoads.push(()=>dotenv.config({ path: '.env' ,override:true })) //加载默认的.env文件
envLoads.push(DbConfig) //加载db-config.ts文件中的配置

@Module({
  imports: [
    NestConfigModule.forRoot({
      isGlobal: true,
      envFilePath: `.env.${process.env.NODE_ENV}`, //根据环境变量加载不同的.env文件
      load: [
        ...envLoads, // 加载更多的自定义配置文件
      ],
      validationSchema: Joi.object({
        MYNAME:Joi.string().default("你的名字") //校验字段
      }),
    }),
  ],
})

export class ConfigModule {}