【升级打怪实录】NestJS 中的 IoC

0 阅读1分钟

IoC 全称 Inversion of Control 译为控制反转,是面向对象中的一种设计原则,用来降低代码之间的耦合度。

主要有依赖注入依赖查找两种实现方式,NestJS 中采用的是依赖注入。

NestJS 中 IoC 的理解:

  1. NestJS 中有 service 和 controller 两个分层;实现 service 的时候必须通过 @Injectable 来声明。

  2. 声明之后注册到 @Module 的 providers 属性中,相当于向当前模块声明可用的 service该声明是必须的,否则代码会报错。

    exports 属性用来将 service 暴露给其他模块。

  3. 在 controller 或 service 的 constructor 中完成注入,注入后就可以使用对应的 service 了。

nestJS 中的 IoC.png