【问题标题】:I'm getting following "Nest can't resolve dependencies of the WorkspaceController..." error in nest.js我在nest.js 中出现“Nest 无法解析 WorkspaceController 的依赖项...”错误
【发布时间】:2020-07-24 11:26:00
【问题描述】:

我收到此错误

Nest 无法解析 WorkspaceController (?) 的依赖关系。请确保索引 [0] 处的参数 API_SERVICE 在 WorkspaceModule 上下文中可用。

我有这个代码

app.module.ts

@Module({
  imports: [
    ClientsModule.register([
      {
        name: 'API_SERVICE',
        transport: Transport.REDIS,
        options: {
          url: 'redis://localhost:6379'
        }
      }
    ]),
    WorkspaceModule
  ],
  controllers: [AppController],
  providers: [AppService]
})

workspace.module.ts

@Module({
  imports: [],
  controllers: [WorkspaceController]
})

export class WorkspaceModule {}

workspace.controller.ts

@Controller()
export class WorkspaceController{
  constructor(@Inject('API_SERVICE') private client: ClientProxy) {}

  @Get("default-languages")
  getDefaultLanguages():Observable<string[]> {
    return this.client.send<any>({cmd:'getDefaultLanguages'},{});
  }
}

【问题讨论】:

    标签: node.js nestjs


    【解决方案1】:

    您在AppModule 内注册ClientsModule,这意味着AppModule 范围内的控制器和提供程序(即在其自己的providerscontrollers 数组中)可以访问该提供程序(@Inject('API_SERVICE') ),但是一旦您离开另一个模块的范围(如WorkspaceModule),该提供程序将不再可用。如果您需要在几个不同的模块中使用该微服务客户端,我建议为它制作一个包装器模块,用于导入和导出 ClientsModule,否则,您只需将 ClientsMOdule.registerAppModule 移动到 WorkspaceModule

    【讨论】:

      猜你喜欢
      • 2021-06-04
      • 2023-02-04
      • 2020-05-27
      • 2021-10-17
      • 2022-11-12
      • 2020-08-12
      • 2023-04-01
      • 2020-09-03
      • 1970-01-01
      相关资源
      最近更新 更多