Использование декоратора класса @Injectable на сервисе, предоставляемом модулем @Global (в официальной документации) - PullRequest
2 голосов
/ 26 мая 2019

Вопросы о ConfigService в документации : https://docs.nestjs.com/techniques/configuration#service

См. Определение класса там:

export class ConfigService { /* ... */ }

Почему нет @ Injectable декоратора? Есть ли причина или просто ошибка? Имеет @ Injectable декоратор любое влияние на тот факт, что модуль, который обеспечивает ConfigService может быть @ Global ?

1 Ответ

0 голосов
/ 27 мая 2019

@Injectable декоратор отсутствует, поскольку этот класс используется в качестве пользовательского поставщика. Смотрите следите за использованием:

{
  provide: ConfigService,
  useValue: new ConfigService(`${process.env.NODE_ENV}.env`),
},

В этом случае вы можете указать токен и значение, которое вы хотите использовать, здесь configService создается вручную, а не системой DI.

Когда вы используете декоратор @Injectable, вы указываете nestjs, что этот класс должен быть создан платформой.

Надеюсь, это поможет вам понять.

...