
NestJS 笔记
文章平均质量分 62
个人学习笔记,欢迎交流指正~
JS.Huang
卷不动了,可以躺平吗
展开
-
【NestJS】资源的上传和下载
# 上传资源multer 是一个基于 Express 的中间件,用于处理 `multipart/form-data` 格式的数据,主要用于上传文件。NestJS 内置了 multer,可以使用 @nestjs/platform-express 包中导出的 `FileInterceptor`、`FilesInterceptor` 等拦截器来使用 multer 的功能。1. **`npm i multer`、`npm i @types/multer -D`**2. **`nest g res use原创 2023-04-15 16:17:27 · 2526 阅读 · 2 评论 -
【NestJS】环境变量的配置与使用
# @nestjs/configNestJS 内置了 dotenv,并将其封装到 @nestjs/config 里面了1. `npm i @nestjs/config`2. 在 .env 文件中编写环境变量:```typescriptTOKEN_SECRET = 'superman'DB = 'mysql'DB_HOST = '127.0.0.1'```3. 在 app.module.ts 文件中全局配置 `ConfigModule`:```typescriptimport原创 2023-04-08 17:14:35 · 2657 阅读 · 0 评论 -
【NestJS】异常 & 过滤器
# 异常## 基础异常类NestJS 中 `HttpException` 为基础异常类。我们可以在应用程序中通过 `new HttpException(响应体, HTTP 状态码)` 创建该异常并抛出。这里的 `HTTP 状态码` 可以从 NestJS 内置的 `HttpStatus` 枚举中获取。```typescript@Get()findAll() { throw new HttpException('Forbidden', HttpStatus.FORBIDDEN);原创 2023-04-08 16:31:21 · 1297 阅读 · 0 评论 -
【NestJS】JWT 鉴权
[Passport](https://www.passportjs.org/) 是一个 NodeJS 鉴权库JWT 认证的交互流程:浏览器发起请求,服务端对用户名和密码进行验证。如果身份验证通过,服务端会基于用户信息生成 token 字符串,并将其响应给浏览器。浏览器会将 token 字符串存储起来。往后的每次请求,浏览器都会以请求头的形式带上 token 字符串。服务端收到请求后,会解析 token 字符串。如果 token 验证通过,则正常返回数据,否则抛出错误。原创 2023-02-23 00:14:07 · 1829 阅读 · 1 评论 -
【NestJS】Guard 守卫
守卫一般用于授权处理,判断当前请求是否能放行给路由处理程序。执行顺序:中间件 - 守卫 - 拦截器 / 管道# 使用守卫1. 创建 CRUD 模板:`nest g res cus-guard`2. 创建守卫:`nest g gu cus-guard````typescriptimport { CanActivate, ExecutionContext, Injectable } from '@nestjs/common';import { Observa原创 2023-02-22 22:16:30 · 851 阅读 · 0 评论 -
【NestJS】模块
脚手架中,可以执行 `nest g mo XXX` 创建模块。通过脚手架命令创建的模块,会自动被导入至根模块注册。注意:项目中的模块都需要导入到根模块中注册一下才能被使用。# 共享模块`nest g res boy`、`nest g res girl`如果希望在 `girl` 模块中使用 `boy` 模块,需要先在 `boy` 模块将其 service 导出```typescriptimport { Module } from '@nestjs/common';i原创 2023-02-20 11:30:48 · 853 阅读 · 0 评论 -
【NestJS】中间件
中间件是在路由处理程序之前调用的函数,所以在中间件函数中可以访问请求和响应。中间件函数需要执行 `next()` 将控制传递给下一个中间件函数,否则请求会被挂起。可以使用 `nest g mi XXX` 创建中间件。# 局部中间件1. `nest g res user`2. `nest g mi ajax`、编写中间件代码```typescriptimport { Injectable, NestMiddleware } from '@nestjs/common'原创 2023-02-19 23:45:53 · 1031 阅读 · 0 评论 -
【NestJS】装饰器
装饰器是一种特殊的类型声明,可以用来修饰:① 类、 ② 属性、 ③ 方法、 ④ 参数搭建项目:1. `yarn init -y` 初始化项目2. `yarn add ts-node typescript -D` 下载依赖包3. `tsc --init` 初始化 Ts 配置文件4. 使用装饰器需要配置 tsconig.json 中的 `experimentalDecorators` 为 `true`# 类装饰器装饰器其实就是一函数,接收 cla原创 2023-02-18 10:50:44 · 802 阅读 · 0 评论 -
【NestJS】IOC & DI
- Inversion Of Control (控制反转),可以理解为一种思想,就是把创建对象的主动权交给外层环境- Dependency Injection (依赖注入),就是 IOC 的落地实现。假设我们需要实现一个 "学生打游戏" 的 demo:```typescript/** * 学生打游戏, 需要通过手机打 */class Phone { name: string; constructor(name: string) { this.原创 2023-02-15 00:33:07 · 382 阅读 · 0 评论