尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

nestjs 配置管理简单说明

nestjs 配置管理简单说明
📅 发布时间:2026/6/20 17:35:11

nestjs 配置管理简单说明

nestjs 配置管理是一个独立的模块,机制上不像midwayjs的玩法,直接提供了装饰器可以快速获取,但是nestjs 是以模块的模式提供的,同时支持范型模式,当然有支持midwayjs 接口定义获取的模式(自动进行对象转换),以下是一个简单玩法

基于yaml的简单实例

内容实际来自官方文档,我做了一些简单调整,使用了多模块的模式

  • 配置
http:host: "localhost"port: 8080db:postgres:host: "localhost"port: 5432database: "mydb"username: "user"password: "password"sqlite:database: "db.sqlite"
  • 宿主应该暴露全局配置模块
  imports: [ConfigModule.forRoot({isGlobal: true, // 此处注册为了全局模块,子模块就可以直接通过ConfigService 获取了load: [configuration],}),

configuration 定义

import { readFileSync } from 'fs';
import { join } from 'path';
import * as yaml from 'js-yaml';const YAML_CONFIG_FILENAME = 'app.yaml';export default () => {const filePath = join(__dirname, '..', 'conf', YAML_CONFIG_FILENAME);const file = readFileSync(filePath, 'utf8');const config = yaml.load(file) as Record<string, any>;return config;
};
  • 子模块通过ConfigService 获取实体数据

接口类型定义,可以让ConfigService 自动帮助我们进行对象处理

export interface PGDBConfig {host: string;port: number;username: string;password: string;database: string;
}export interface HttpConfig {host: string;port: number;
}export interface SQLiteDBConfig {database: string;
}export interface AppConfig {http: HttpConfig;db: {postgres: PGDBConfig;sqlite: SQLiteDBConfig;};
}

使用配置(注意不太好的是暂时没有提供直接获取所有的,对于配置是基于字符串格式获取的)

import { Controller, Get } from '@nestjs/common';
import { ModuleBService } from './moduleb.service';
import {ConfigService} from  "@nestjs/config"
import  type {PGDBConfig} from "./config"
@Controller("mb")
export class ModuleBController {constructor(private readonly moduleBService: ModuleBService, private readonly configService: ConfigService) {}@Get("/")getHello(): string {const query = this.configService.get<PGDBConfig>('db.postgres');return `Host: ${JSON.stringify(query)}, Message: ${this.moduleBService.getHello()}`;}
}

说明

从使用上midwayjs 的似乎是是挺不错的实践,但是nestjs 比较符合nestjs 的模块,服务,ioc 的套路,同时注入配置注册为全局,我们的子模块使用也是很不错的,官方文档很值得看看

参考资料

https://docs.nestjs.com/techniques/configuration

相关新闻

  • 2025年质量好的泡泡兔毛绒厂家最新用户好评榜
  • 2025年比较好的高低兔毛绒厂家推荐及选购指南
  • 2025年评价高的速冻食品包装机最新TOP厂家排名

最新新闻

  • 2026宁波黄金回收全攻略:十区县正规门店测评+变现避坑指南 - 宁波早知道
  • 2026苏州黄金回收门店横评:姑苏虎丘园区吴中相城五店实测,光谱验金不收损耗费全攻略 - 百福黄金回收
  • MPC5748G到MPC5746C迁移实战:引脚、内存与外设差异全解析
  • 终极小说下载器指南:一键保存100+小说网站,打造个人数字图书馆
  • 太原便宜搬家不踩坑!正规高性价比选太原福康搬家 - 速递信息
  • Diablo Edit2:暗黑破坏神2终极角色编辑器使用指南

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号