Skip to content

NestJS项目技术

接下来我们简单介绍一下我们的项目采用的技术以及达到的目标

项目概览

👉最终目标

通过本项目学习并实践:

  • 构建一个完整的 Web 应用,包含数据库、身份验证、文件上传、日志记录等核心功能。
  • 使用现代 DevOps 工具(Docker、GitHub Actions)实现自动化部署。
  • 实现高效的数据存储与缓存(通过 Redis)。
  • 实现良好的代码结构和 API 设计,生成自动化文档。

👉相关技术和工具

简单看看我们项目使用的相关技术和工具

功能实现方式技术/工具
数据库连接 & CRUD 操作使用 TypeORM 连接数据库,实现简单的增删改查(CRUD)操作。TypeORM, MySQL/PostgreSQL等数据库
接口统一格式 & 自动生成 Swagger 文档统一接口格式,自动生成 API 文档。NestJS, Swagger
Docker + GitHub Action 自动化部署使用 Docker 容器化应用,并通过 GitHub Actions 自动化部署到腾讯云服务器。Docker, GitHub Actions, 腾讯云
通过域名访问接口配置域名指向服务器,使得可以通过域名访问接口。腾讯云服务器, 域名配置
JWT 用户注册登录与身份验证使用 JWT 实现用户注册、登录功能,并进行身份验证。JWT, NestJS
JWT Token 拦截器在 API 请求中通过拦截器验证 Token,若无 Token 或 Token 无效返回 401 错误。JWT, NestJS, Guards
Redis 数据库使用安装 Redis 数据库并在 NestJS 中进行应用,提升缓存、队列等处理效率。Redis, NestJS
文件上传功能使用 Multer 实现文件上传,并支持文件存储在本地或云存储中。Multer, NestJS
日志记录功能使用 Winston 进行日志记录,保存应用日志、错误日志等信息。Winston, NestJS
定时任务调度使用 @nestjs/schedule 封装定时器,实现定时任务的调度。@nestjs/schedule

👉详细步骤与说明

1. 数据库连接 & CRUD 操作

  • 使用 TypeORM 进行数据库连接,创建实体和对应的仓库进行增删改查操作。

2. 接口统一格式 & Swagger 文档生成

  • 配置 NestJS 自动生成 Swagger API 文档,提供统一接口格式。
  • 使用 @nestjs/swagger 包生成接口文档。

3. Docker + GitHub Actions 自动化部署

  • 使用 Docker 容器化应用,编写 Dockerfiledocker-compose.yml
  • 配置 GitHub Actions,实现代码推送时自动构建、测试和部署。
  • 使用腾讯云服务器作为部署目标,确保可以通过域名访问接口。

4. JWT 用户注册与身份验证

  • 用户通过 POST 请求注册账号,通过 JWT 生成 Token。
  • 登录时,使用 JWT 验证用户身份,返回认证 Token。
  • 配置 Guards 和拦截器,确保每个请求都经过身份验证。

5. Redis 数据库使用

  • 安装 Redis,配置 Redis 与 NestJS 进行连接。
  • 在应用中使用 Redis 存储和读取缓存数据,提升性能。

6. 文件上传功能

  • 使用 Multer 配置文件上传功能,支持多种文件类型上传。
  • 配置文件存储路径,本地或云存储(如阿里云、腾讯云)。

7. 日志记录功能

  • 配置 Winston 实现日志记录,包括请求日志、错误日志等。
  • 支持多种日志输出格式和日志等级(如 info, warn, error)。

8. 定时任务调度

  • 使用 @nestjs/schedule 实现定时任务调度。
  • 配置定时任务执行周期,并处理定时任务逻辑。

Released under the MIT License.