我需要共享一个动态模块。在文档中我发现我们可以在全球范围内共享服务。是的,这是一个解决方案。但是,我想知道在模块级别是否可行。这就是为什么我对动态模块注册几次时会发生什么感兴趣。从实践中,我发现它在 NestJS 中创建了不同的模块实例。该模块的行为与 Angular 中的不同,但 NestJS 喜欢提及 Angular 的相似性。属性模块带我走了。现在我明白它仅用于控制模块行为。但是,我在文档中没有看到任何解释。我看到类似的问题。但我还没有找到我感兴趣的细节。
以下代码只是想法。尚未对其进行检查。
import { DynamicModule, Module } from '@nestjs/common';
import { ConfigService } from './config.service';
@Module({})
export class ConfigModule {
static register(options: Record<string, any>): DynamicModule {
return {
module: ConfigModule,
providers: [
{
provide: 'CONFIG_OPTIONS',
useValue: options,
},
ConfigService,
],
exports: [ConfigService],
};
}
}
export const ConfiguredConfigModule = ConfigModule.register({key: 'flower'});
...
@Module({
imports: [ConfiguredConfigModule]
})
export class AppModule {}
问候。