我有一个服务叫做 Configuration 用来做配置,
在我的业务模块(多个)中都有一个这样一个Configuration的服务。
我想要把他们汇总起来,在Configuration 的总的服务中可以访问所有这些子项配置,咋整呢?
在 NestJS 中,你可以使用全局服务或全局配置服务来访问所有模块的配置。下面是一个基本的步骤指南,帮助你在 NestJS 中实现这一点:
首先,你需要创建一个全局配置服务,该服务将负责存储和提供所有模块的配置。
import { Injectable, Inject } from '@nestjs/common';import { ConfigType } from '@nestjs/config';@Injectable()export class GlobalConfigService { constructor( @Inject('APP_CONFIG') private readonly appConfig: ConfigType<any>, ) {} getAllConfigs(): any { return this.appConfig; }}
在这个例子中,APP_CONFIG
是一个全局配置对象,它包含了所有模块的配置。
在你的 AppModule
中,你需要提供 GlobalConfigService
,并将 APP_CONFIG
注入到它中。
import { Module } from '@nestjs/common';import { ConfigModule } from '@nestjs/config';import { GlobalConfigService } from './global-config.service';@Module({ imports: [ ConfigModule.forRoot({ isGlobal: true, }), ], providers: [ { provide: 'APP_CONFIG', useFactory: () => ({ // 在这里合并所有模块的配置 // 例如:return { ...module1Config, ...module2Config, ... }; }), }, GlobalConfigService, ], exports: [GlobalConfigService],})export class AppModule {}
在你的每个业务模块中,你需要配置 ConfigModule
以加载该模块的配置。
import { Module } from '@nestjs/common';import { ConfigModule } from '@nestjs/config';@Module({ imports: [ ConfigModule.forFeature([ // 在这里定义你的模块配置 ]), ],})export class YourFeatureModule {}
现在,你可以在你的业务模块中注入 GlobalConfigService
,并使用它来访问所有模块的配置。
import { Injectable } from '@nestjs/common';import { GlobalConfigService } from '../global-config.service';@Injectable()export class YourService { constructor(private readonly globalConfigService: GlobalConfigService) {} getConfigs() { const allConfigs = this.globalConfigService.getAllConfigs(); // 使用 allConfigs }}
这个解决方案假设你已经使用 @nestjs/config
包来管理你的配置,并且你有一个方法来合并所有模块的配置到一个全局配置对象中。根据你的具体需求,你可能需要调整这个解决方案以适应你的项目结构和配置管理方式。
问题内容: 我有一个和一个。 我想用的。 当我通过注射添加时: 我得到这个嵌套错误: [嵌套] 11592-2018-8-13 11:42:17 [ExceptionHandler] Nest无法解析PlayersService(+,?)的依赖项。请确保索引[1]的参数在当前上下文中可用。 这两个模块均导入。两种服务都在其模块中单独工作。 问题答案: 你要 导出 的是它提供的模块: 然后将导出 模
问题内容: 我已经看到了很多人从一个模块中提取所有类的示例,通常是这样的: 太棒了 但是我无法找到如何从 当前 模块中获取所有类。 这可能确实很明显,但是我什么也找不到。谁能帮我吗? 问题答案: 尝试这个: 在您的情况下: 甚至更好: 因为带谓语。
我正在设置一个SQLite到我的不和谐机器人,我想创建一个数据库文件到每个服务器与服务器的名称,但我找不到公会到每个服务器 我有一个类来创建与sql和main的连接,创建连接的方法很好,但我只需要为每个服务器创建一个db文件 这是我的SQLite连接类: 这是我的主要方法 在
我是Spring Boot的新手,我刚刚开始使用graph ql-spqr进行Spring Boot,因为它允许Java项目轻松无融资创业。 但是,根据我的理解,GraphQL基本上允许从数据库中获取选定的字段。根据示例,我已经看到,graph ql-spqr库中的这种类型的选择发生在客户端。有没有办法同时进行客户端和服务器端的选择以加快查询速度? 我已经研究了GraphQL的EntityGrap
下面是一个例子: 这方面的用例是创建有限状态机(FSM)。能够获得所有常量将帮助我编写一个测试用例,以确保每个新值在FSM映射中都有相应的条目。
问题内容: 除了标准库,我想要类似的东西。其他无效的东西: -仅显示已加载的模块 -包含非标准库模块EDIT的路径,并且似乎在virtualenv中不起作用。 我想要此列表的原因是可以将其传递给http://docs.python.org/library/trace.html的或命令行选项 因此,最终,我想知道在使用或时如何忽略所有标准库模块。 编辑:我希望它在virtualenv内部工作。htt