【问题标题】:Nestjs can't create dynamic module with config importNestjs 无法使用配置导入创建动态模块
【发布时间】:2022-12-30 21:48:42
【问题描述】:

我正在尝试在 Nestjs 中创建一个 DynamicModule,但似乎我无法正确使用 useFactory 在此过程中注入 ConfigModule。
如果我使用硬编码的布尔值而不是config.get('cache').enabled,一切都按预期工作,但如果我尝试使用config:,我会收到以下错误

TypeError: Cannot read properties of undefined (reading 'get')

这是我到目前为止安排的代码:

应用程序模块.ts

@Module({
  imports: [
    ConfigModule.forRoot({
      isGlobal: true,
      validate,
    }),

    CoreModule.registerAsync({
      useFactory: (config: ConfigService) => ({
        cacheEnabled: config.get('cache').enabled,
      }),
      imports: [ConfigModule],
      injects: [ConfigService],
    }),
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

核心模块.ts

@Module({})
export class CoreModule {
  static registerAsync = (options: {
    useFactory: (...args: any[]) => { cacheEnabled: boolean };
    imports: any[];
    injects: any[];
  }): DynamicModule => {
    const imports = [];
    const providers = [];
    if (options.useFactory().cacheEnabled) imports.push(HttpCacheModule);

    return {
      module: CoreModule,
      imports,
      providers,
    };
  };
}

【问题讨论】:

    标签: dependency-injection nestjs nestjs-config nest-dynamic-modules


    【解决方案1】:

    你的问题成功了吗?

    【讨论】:

      猜你喜欢
      • 2021-09-18
      • 2014-12-17
      • 2023-01-31
      • 2021-11-12
      • 1970-01-01
      • 2020-12-01
      • 1970-01-01
      • 2021-10-22
      • 2022-07-06
      相关资源
      最近更新 更多