【发布时间】: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