Nest笔记1:入门
在nodejs生态中,相比于Express、Koa2等服务端框架,只能应付一些小的框架、逻辑相对简单的项目,Nestjs希望为nodejs在后端开发搭建一个很好的架构,去应付相对复杂的应用场景!
Nest框架特点:
- 为很多后端典型问题提供解决方案,是一个大而全的框架
- 统一的异常处理
- 面向切面编程(AOP)
- 支持TypeScript语法
新建项目
(默认本地已经安装了node环境)
首先需要在本地安装Nest CLI来构建新项目,使用如下命令全局安装Nest CLI:
npm i -g @nestjs/cli
接下来新建项目:
nest new 项目名称
进入项目目录,运行:
// 启动
npm run start
// 热更新启动
npm run start:dev
Nest框架执行流程
概念梳理
- Module:是Nest框架运行时的组织者,根节点是
app.module,所有自己定义的Module挂在AppModule上,整个结构类似一个倒置的树形结构
- Controller+Provider(核心):Controller和Provider组成了Module,控制器管理路由,可以通过配置路由或通配符管理特定的路由和处理。控制器依赖Provider提供的功能来处理逻辑。Provider有很多种,典型的就是services。所以一个Nest应用程序包含的最小组成就是Module+Controller+Service
- 中间件:有全局中间件和路由中间件,类似express的中间件概念,处理前置逻辑,中间件处理完交给守卫
- 守卫:主要负责检查请求是否合法或是否有权限,比如j wt身份校验等
- 拦截器:分两部分,前置和后置,前置在请求控制器之前处理,后置在控制器处理完后处理
- 管道:一般对请求数据做处理、转换、映射
- 过滤器:控制器发生了异常,可以在过滤器里统一捕获,之前的异常处理可以很简单的抛出异常,不用去捕获,任何前面的步骤都不用亲自做异常的捕获、处理和格式化,都可以在最后一步过滤器中处理
上手Demo
具体代码可以查看我的项目Nest上手