nestjs从入门到弃坑
nestjs从入门到弃坑
https://www.bilibili.com/video/BV1am4y1d71A 1
1.引言
2.初始化项目
3.控制器和路由(上)
4.控制器和路由(下)
5.提供者
就是依赖注入
防止hack
数据传输对象(DTO)(Data Transfer Object),是一种设计模式之间传输数据的软件应用系统。 数据传输目标往往是数据访问对象从数据库中检索数据。 数据传输对象与数据交互对象或数据访问对象之间的差异是一个以不具有任何行为除了存储和检索的数据(访问和存取器)。
https://blog.csdn.net/u012940001/article/details/76622730
6.中间件
Nest 中间件实际上等价于 express 中间件。下面是Express官方文档中所述的中间件功能:
中间件函数可以执行以下任务:
执行任何代码。
对请求和响应对象进行更改。
结束请求-响应周期。
洞用堆栈中的下一个中间件函数。
如果当前的中间件函数没有结束请求-响应周期,它必须调用 next()将控制传递给下一个中间件函数。否则请求将被挂起。
nest g mi logger
还有在app.module 编写 那个控制器 那个中间件
可以配置 那个控制器 那个方法 包含 忽略
还有可以注册全局中间件
7.异常处理
filter
nest g f http-exception
全局异常出来 局部控制器方法
8.管道-转换
参数引用 转换等
9.守卫
守卫
守卫是一个使用@Injectable()装饰器的类.守卫应该实现CanActivate接口.
Client Side HTTP Reguest Guard Route Handler ORequestMapping守卫有一个单独的责任,它们根据运行时出现的某些条件(例如权限,角色,防问控制列表等)来确定给定的请求是否由路由处理程序处理,这通常称为授权。在传统的 Express 应用程序中,通常由中间件处理授权。中间件是身份验证的良好选择,到目前为止,访问限制逻辑大多在中间件内,这样很好,因为诸如 token验证或将 request 对象附加属性与特定路由没有强关联.
中间件不知道调用 next()函数后会执行哪个处理程序,另一方面,守卫可以访问ExecutionContext实例,因此确切地知道接下来要执行什么,它们的设计与异常过滤器、管道和拦截器非常相似,目的是让您在请求/响应周期的正确位置插入处理逻辑,并以声明的方式进行插入。这有助于保持代码的简洁和声明性
nest g gu role
放控制器 整个控制器的方法都use
反shi器
//这这里拿到了用户的标识,我们的系统就可以查询用户的权限roturn truo
控制返回权限
10.数据库连接
,例如推荐 Sequelize(recipe)、knexis(tutorial)和
typeorm
add nestjs/sequelize sequelize sequelize-typescript mysq12
app.modle 配置
那个报错 用 typeorm
model 模型 痛thinkphp 数据库相关 对应一个表
模块module
npm install --save @types/sequelize
11.模块
分层架构
12.生成swagger文档
swag
$ npm install --save @nestjs/swagger swagger-ui-express
2022
|nest g res products 一些模板 一套 多选择
一些zsq @ 使用 可以加code让文档显示多 code等等
nest用于构建高效且可伸缩的服务端应用程序的渐进式 Node.js框架。
完美支持 Typescript面向 AOP 编程
支持 Typeorm高并发,异步非阻塞 10
Node.js 版的 spring构建微服务应用
https://docs.nestjs.cn/10/openapi
docs.nestjs.cn
old8 new10
依赖注入
控制器加@Controller('/v1') 路由
$ npm i -g @nestjs/cli
$ nest new project-name
orm sx tyorm....
要重新build
nest -h
nest g co cat 创建cat控制器
内单元测试 vs
返回对象数组 自动序列
nest g s cat 创建服务
java叫注解
jsts 叫装s器
ts内置泛型
nest start npm start

浙公网安备 33010602011771号