【发布时间】:2021-09-16 22:22:12
【问题描述】:
我正在尝试创建一个提供单例服务的模块。想象一下QueueService,最简单的实现是单例服务。
可重现的存储库:https://github.com/colthreepv/nestjs-singletons
代码墙
app.module.ts:
@Module({ imports: [FirstConsumerModule, SecondConsumerModule] })
export class AppModule {}
firstconsumer.module.ts 和 secondconsumer.module.ts(它们是相同的):
@Injectable()
class FirstConsumer {
constructor(private readonly dependency: DependencyService) {}
}
@Module({
imports: [DependencyServiceModule],
providers: [DependencyService, FirstConsumer]
})
export class FirstConsumerModule {
constructor(private readonly first: FirstConsumer) {}
}
dependency.module.ts:
@Injectable()
export class DependencyService {
constructor() { console.log("Instance created") }
}
@Module({ providers: [DependencyService], exports: [DependencyService] })
export class DependencyServiceModule {}
代码完成
我想要获得的是 console.log Instance created 只发布一次。
目前:
[NestFactory] Starting Nest application...
Instance created
Instance created
Instance created
[InstanceLoader] AppModule dependencies initialized +16ms
[InstanceLoader] DependencyServiceModule dependencies initialized +1ms
[InstanceLoader] FirstConsumerModule dependencies initialized +1ms
[InstanceLoader] SecondConsumerModule dependencies initialized +1ms
[NestApplication] Nest application successfully started +8ms
【问题讨论】:
标签: dependency-injection singleton nestjs