编辑
2025-08-22
后端
00
请注意,本文编写于 45 天前,最后修改于 35 天前,其中某些信息可能已经过时。

目录

nest项目创建
1.使用@nestjs/config
2当配置文件过多

nest项目创建

js
文档:https://docs.nestjs.com/ $ npm i -g @nestjs/cli $ nest new project-name

1.使用@nestjs/config

js
pnpm i @nestjs/config croess-env dotenv app.module.ts中使用 import { Module } from '@nestjs/common'; import { UserModule } from './user/user.module'; import { ConfigModule } from '@nestjs/config'; import * as dotenv from 'dotenv'; const envFilePath = `.env.${process.env.NODE_ENV || 'dev'}`; @Module({ imports: [ UserModule, ConfigModule.forRoot({ isGlobal: true, envFilePath, load: [() => dotenv.config({ path: '.env' })], }), ], providers: [], }) export class AppModule {} 创建.env 配置文件 root=dev 创建enum文件夹配置config.enum.ts文件 export enum ConfigEnum { DB_HOST = 'DB_HOST', DB_PORT = 'DB_PORT', DB_USERNAME = 'DB_USERNAME', DB_PASSWORD = 'DB_PASSWORD', DB_DATABASE = 'DB_DATABASE', ROOT = 'root', } 使用 import { ConfigService } from '@nestjs/config'; console.log(this.configService.get(ConfigEnum.ROOT)); package.json中使用 "start:prod": "cross-env NODE_ENV=prod nest start --watch",

2当配置文件过多

js
使用 pnpm i js-yaml @types/js-yaml lodash cross-env @nestjs/config 1.创建configuration.ts配置文件用于加载config中配置 import { readFileSync } from 'node:fs'; import * as yaml from 'js-yaml'; import * as path from 'node:path'; import * as _ from 'lodash'; // 读取配置默认配置文件名称 const YAML_CONFIG_FILENAME_DEFAULT = 'env.yml'; const YAML_FILE_PATH_DEFAULT = path.resolve( __dirname, '../config', YAML_CONFIG_FILENAME_DEFAULT, ); //读取当前运行环境配置文件 const env = process.env.NODE_ENV; const YAML_FILE_PATH_ENV = path.resolve( __dirname, '../config', `env.${env}.yml`, ); const comonConfig = yaml.load(readFileSync(YAML_FILE_PATH_DEFAULT, 'utf8')); const envConfig = yaml.load(readFileSync(YAML_FILE_PATH_ENV, 'utf8')); export default (): any => _.merge(comonConfig, envConfig); 2.app.module.ts中使用 import { Module } from '@nestjs/common'; import { UserModule } from './user/user.module'; import { ConfigModule } from '@nestjs/config'; import Configuration from './configuration'; console.log('print ~ Configuration:', Configuration); // const envFilePath = `.env.${process.env.NODE_ENV || 'dev'}`; @Module({ imports: [ UserModule, ConfigModule.forRoot({ isGlobal: true, // envFilePath, load: [Configuration], }), ], }) export class AppModule {} 3.创建config文件夹,env.yml DB: host: 127.0.0.1 port: 3306 username: root password: root 4.package.json中使用 "start:prod": "cross-env NODE_ENV=prod nest start --watch", 5.使用 import { ConfigService } from '@nestjs/config'; console.log(this.configService.get(DB));

本文作者:薛祁

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!