簡體   English   中英

我在nest.js 中出現“Nest 無法解析 WorkspaceController 的依賴項...”錯誤

[英]I'm getting following “Nest can't resolve dependencies of the WorkspaceController…” error in nest.js

我收到這個錯誤

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]
})

工作區.module.ts

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

export class WorkspaceModule {}

工作區.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'},{});
  }
}

您在 AppModule 中注冊ClientsModule ,這意味着AppModuleAppModule中的控制器和提供者(即在其自己的providerscontrollers數組中)可以訪問該提供者( @Inject('API_SERVICE') ),但是一旦您離開另一個模塊的scope(如WorkspaceModule ),該提供程序不再可用。 如果您需要在幾個不同的模塊中使用該微服務客戶端,我建議為它制作一個包裝模塊,用於導入和導出ClientsModule ,否則,您只需將ClientsMOdule.registerAppModule移動到WorkspaceModule

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM