控制器中使用提供者的区别
来源:6-4 葵花宝典:什么是依赖注入(DI)&控制反转IoC

慕粉3946981
2024-06-06
为什么在控制器中使用提供者,如果是在构造函数参数上可以省略 inject 装饰器及相应的 token 值,而在类的实例上必须写 inject 装饰器及对应的 token ?
不要讲概念理论,直接上nestjs关于此逻辑的核心代码并描述核心逻辑
写回答
1回答
-
Brian
2024-06-07
这是固定用法。
注册方式不同,使用方式不同。
Class类的注册方式,是直接在modules中的providers中注册的,
官方示例代码:https://github.com/nestjs/nest/blob/master/sample/01-cats-app/src/cats/cats.module.ts#L7
官方示例仓库:https://github.com/nestjs/nest/tree/master/sample
而useClass这类的注册方式,有指定provide的名称,则就需要在Inject的时候加入这个名称了。
参考:https://docs.nestjs.com/fundamentals/custom-providers#non-class-based-provider-tokens
对于源码,可以自行在github上搜索
00
相似问题