如何在导入的模块/控制器中访问创建的NestJS ApplicationContext?

时间:2018-10-12 04:37:17

标签: nestjs

我对NestJ还是比较陌生,想知道如何从导入的模块或控制器访问在服务器引导程序中创建的INestApplication应用程序上下文?我正在NestJS之上构建一个框架,需要访问由我的框架以及使用该框架编写的应用程序提供的特定类型的组件/服务等列表。

1 个答案:

答案 0 :(得分:0)

  1. 对于模块,您无法执行此操作,因为它们将在ApplicationContext被引导之前被调用。根据您的情况,可能有用的是Dynamic Modules

  2. 对于控制器,您可以使用ModuleRef,它允许您从ApplicationContext动态导入任何内容。

非常重要的一点是{ strict: boolean }-选项


onModuleInit() {
  // Will search only inside the ModuleContext
  this.service = this.moduleRef.get(Service);
  // Will search in the whole application
  this.service = this.moduleRef.get(Service, { strict: false });
}