Nestjs众所周知是一个用于构建高效,可扩展的 Node.js 服务器端应用程序的框架。
它使用渐进式 JavaScript,内置并完全支持 TypeScript(但仍然允许开发人员使用纯 JavaScript 编写代码)并结合了 OOP(面向对象编程),FP(函数式编程)和 FRP(函数式响应编程)的元素。
在它的底层,Nest使用强大的 HTTP Server 框架,如 Express(默认)和 Fastify。Nest 在这些框架之上提供了一定程度的抽象,同时也将其 API 直接暴露给开发人员。这样可以轻松使用每个平台的无数第三方模块。同时借鉴了java语言中 spring-boot 的开发构建思想,基于注解等等;
今天我们简单的讲一下 nest 中的 IOC控制反转 和 DI依赖注入:
相关概念
IOC控制反转 IOC的全称是Inversion of Control,翻译过来就是控制反转。控制反转的意思就是我们将对象的创建和管理权交给IoC Service Provider(IoC思想的具体实现)
DI依赖注入 DI 的全称 Dependency Injection,即依赖注入:组件之间依赖关系由容器在运行期决定,形象的说,即由容器动态的将某个依赖关系注入到组件之中。依赖注入的目的并非为软件系统带来更多功能,而是为了提升组件重用的频率,并为系统搭建一个灵活、可扩展的平台。通过依赖注入机制,我们只需要通过简单的配置,而无需任何代码就可指定目标需要的资源,完成自身的业务逻辑,而不需要关心具体的资源来自何处,由谁实现。
Ioc 与 DI 的关系:
控制反转是通过依赖注入实现的,其实它们是同一个概念的不同角度描述。通俗来说就是 IoC是设计思想,DI是实现方式 。
最后请出我们的小趴菜: