簡體   English   中英

Nestjs無法解決依賴關系

[英]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但它沒有任何模塊中提供。

所以,你必須添加AfipUrlsproviders的陣列ApiModule 然后就可以注射了。

providers: [UrlsAfipService, WsaaService, DescribeService, AfipUrls]
//                                                         ^^^^^^^^

但請注意,代碼庫中的編碼環境特定值可能是代碼異味。 考慮創建一個ConfigService來封裝使用dotenv從環境變量或.env文件中讀取的環境特定變量。 有關更多信息,請參閱此答案

暫無
暫無

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

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