[英]Nestjs cant resolve dependencies
無法弄清楚我的代碼有什么問題。 (我是 nestjs 的新手,我試圖通過向它傳遞一些應用程序來學習它)。 控制台日志說:
Nest 無法解析 UrlsAfipService (?) 的依賴關系。 請確保索引 [0] 處的參數在 ApiModule 上下文中可用。
網址服務
import { Injectable } from '@nestjs/common';
import { AfipUrls } from './urls'
@Injectable()
export class UrlsAfipService {
constructor(
private readonly afipUrls: AfipUrls,
) {}
getWSAA () {
return this.afipUrls.homo().wsaa; // <- change to prod() for production
}
getService (service: string) {
return this.afipUrls.homo().service.replace('{service}', service)
}
}
網址
export class AfipUrls {
homo() {
return {
wsaa: 'https://url.com',
service: 'https://url.com'
}
}
prod() {
return {
wsaa: 'url.com',
service: 'url.com'
}
}
}
接口模塊
import { Module } from '@nestjs/common';
import { ApiController } from './api.controller';
import { UrlsAfipService } from './urls-afip.service'
import { WsaaService } from './wsaa.service'
import { DescribeService } from './describe.service';
@Module({
controllers: [ApiController],
providers: [UrlsAfipService, WsaaService, DescribeService]
})
export class ApiModule {}
應用模塊
import { Module } from '@nestjs/common';
import { ApiModule } from './api/api.module';
import { AppController } from './app.controller';
import { AppService } from './app.service';
@Module({
imports: [ApiModule],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
您已聲明AfipUrls
作為一個依賴UrlsAfipService
但它沒有任何模塊中提供。
所以,你必須添加AfipUrls
到providers
的陣列ApiModule
。 然后就可以注射了。
providers: [UrlsAfipService, WsaaService, DescribeService, AfipUrls]
// ^^^^^^^^
但請注意,代碼庫中的編碼環境特定值可能是代碼異味。 考慮創建一個ConfigService
來封裝使用dotenv
從環境變量或.env
文件中讀取的環境特定變量。 有關更多信息,請參閱此答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.