1.Nest.js依靠MVC框架,说到这里我们先了解一下两个框架的区别。
MVC框架和MVVM框架最本质的区别就是:MVVM能实现View和Model的联动。
MVC:允许在不改变视图的情况下改变视图对用户输入的响应方式,用户对View的操作交给了Controller处理,在Controller中响应View的事件调用Model的接口对数据进行操作,一旦Model发生变化便通知相关视图进行更新。
MVVM:与MVC最大的区别就是:它实现了View和Model的自动同步,也就是当Model的属性改变时,我们不用再自己手动操作Dom元素,来改变View的显示,而是改变属性后该属性对应View层显示会自动改变
2.IOC(inverse of control)
主要就是通过
通过@Controller、@Injectable装饰器声明类(class) 就会被Nest.js扫描,创建对应的对象并添加到一个容器里,这些对象会根据构造器里声明的依赖 “自动注入”,也就是DI(dependency inject),这就是IOC的思想。
3.AOP(aspect of
在Nest.js实现AOP的方式有5种:Gurad(守卫)、Pipe(管道)、Interceptor(拦截器)、ExceptionFilter(异常过滤器)、还有Middleware(中间件)。
而中间件来实现AOP比较特别,因为Express的中间件洋葱模型,它可以透明的在外面包一层,加入一些逻辑,内层感知不到。Nest.js的Middleware中间件是直接继承于Express框架的
二、一些文件的作用
1.dto文件夹:数据传输
主要就是:传输数据、验证数据。类似于接口,主要组成为路由器/控制器,
2.entities:
三、主要构成:(Controller、Providers、Modules)
(1):Controller
控制器:负责处理传入的Http请求。
(2):Providers
主要处理一些复杂的逻辑。
(3):Modules:
负责整合到应用程序内部。