在@Global模块提供的服务上使用@Injectable类修饰器(在官方文档中)

时间:2019-05-26 09:17:58

标签: nestjs code-documentation

有关文档中的 ConfigService 的问题https://docs.nestjs.com/techniques/configuration#service

在此处查看类定义:

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

为什么没有 @Injectable 装饰器?有什么原因还是只是一个错误? @Injectable 修饰符是否对提供ConfigService的模块可能是 @Global 的事实有任何影响?

1 个答案:

答案 0 :(得分:0)

没有@Injectable装饰器,因为此类用作自定义提供程序。请参阅用法:

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

在这种情况下,您可以指定令牌和要使用的值,这里configService是手动实例化的,而不是由DI系统实例化的。

使用@Injectable装饰器时,您告诉nestjs此类由框架实例化。

我希望这可以帮助您理解。