Nestjs не может разрешить зависимости - PullRequest
1 голос
/ 23 апреля 2019

Не могу понять, в чем проблема моего кода.(Я новичок в nestjs, я пытаюсь выучить его, передав ему несколько приложений).Журнал консоли говорит:

Nest не может разрешить зависимости UrlsAfipService (?).Убедитесь, что аргумент с индексом [0] доступен в контексте ApiModule.

UrlsAfipService

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

AfipUrls

export class AfipUrls {
    homo() {
      return {
        wsaa: 'https://url.com',
        service: 'https://url.com'
      }
    }

    prod() {
      return {
        wsaa: 'url.com',
        service: 'url.com'
      }
    }
}

ApiModule

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 {}

AppModule

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 {}

1 Ответ

1 голос
/ 24 апреля 2019

Вы объявили AfipUrls как зависимость для UrlsAfipService, но она не предусмотрена ни в одном модуле.

Таким образом, вы должны добавить AfipUrls к массиву providers вашего ApiModule. Тогда это может быть введено.

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

Обратите внимание, что специфичные для среды кодирования значения в базе кода могут быть запахом кода. Рассмотрите возможность создания ConfigService, который инкапсулирует переменные среды, которые считываются из переменных среды или файлов .env с использованием dotenv. См. ответ для получения дополнительной информации.

...