[英]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
,這意味着AppModule
的AppModule
中的控制器和提供者(即在其自己的providers
和controllers
數組中)可以訪問該提供者( @Inject('API_SERVICE')
),但是一旦您離開另一個模塊的scope(如WorkspaceModule
),該提供程序不再可用。 如果您需要在幾個不同的模塊中使用該微服務客戶端,我建議為它制作一個包裝模塊,用於導入和導出ClientsModule
,否則,您只需將ClientsMOdule.register
從AppModule
移動到WorkspaceModule
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.