NESTJS环境配置

实际开发过程中需要对项目环境进行配置,基本环境通常会有测试环境和开发环境。
nest 提供了@nestjs/config包方便我们对环境进行配置
废话不多说,实操步骤如下。
本设置基于文章NESTJS 服务化架构设计和项目搭建中的结构进行设计和实现

安装依赖

npm i --save @nestjs/config

添加配置

为了使配置文件能够进行共享和避免反复配置,将config配置在lib目录下
目录结构如下

├── apps
│   ├── dm
│   ├── ge
│   └── jsf
├── libs
│   └── common
│       ├── src
│       │   ├── config
│       │   │   ├── config.module.ts
│       │   │   └── env
│       │   │       ├── common.ts
│       │   │       ├── development.ts
│       │   │       ├── index.ts
│       │   │       └── production.ts
│       │   └── index.ts
│       └── tsconfig.lib.json

  • common.ts:放置公共配置
  • development.ts:放置开发环境配置
  • production.ts:放置线上环境配置

根据环境变量读取配置

  • libs/common/src/config/env/index.ts
import developmentConfig from './development';
import productionConfig from './production';
import commonConfig from './common';

const configs = {
  development: developmentConfig,
  production: productionConfig,
};
const env = process.env.NODE_ENV || 'development';

export default () => ({
  ...commonConfig,
  ...configs[env],
});

创建配置模块

引入自定义配置,因为是公共模块,设置 isGlobal=true

  • libs/common/src/config/config.module.ts
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import customConfig from './env';

@Module({
  imports: [
    ConfigModule.forRoot({
      isGlobal: true, // 作用于全局
      load: [customConfig], // 加载自定义配置项
    }),
  ],
})
export class configModule {}

调用配置参数

  • apps/ge/src/ge.service.ts
import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';

@Injectable()
export class GeService {
  constructor(private configService: ConfigService) {}
  getConfig() {
    this.configService.get<string>('port');
  }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值