【发布时间】:2021-08-26 14:39:27
【问题描述】:
我用 NestJS 工作了 4 个月,之前用 PHP 工作了 5 年。 特别是使用 PHP 和 Symfony,我可以选择访问已编译的 DI 容器并根据需要从中获取任何服务。
如果我们有一个带有服务的应用程序 (A B C) 和 A 依赖于 B 和 C 我能够在控制器甚至其他服务中调用容器,这些服务都知道容器,并使用已编译的 A 或 C 服务来满足我的需要。
NestJS DI 是否有这样的选项 - 通过某个 ID 调用某些服务?我试图搜索它,但最终一切都只能使用已编译的服务,无法直接访问。
UPD:我有兴趣从非@Injectible 类访问 DI 容器。例如:
export class StatefulCruncherClass{
constructor(private dataToCrunch:any){
}
async crunch(){
if (this.dataToCrunch.isObject){
return NestJs.getDI().get('ObjectsCruncher').crunch(this)
} else {
return NestJs.getDI().get('ArrayCruncher').crunch(this)
}
}
}
【问题讨论】:
标签: typescript dependency-injection nestjs