NestJS
项目介绍
youlai-nest 是 vue3-element-admin 的 Node.js 后端实现,基于 NestJS 11.x + TypeScript + TypeORM,集成 JWT / Redis / MySQL,用于企业级前后端分离权限管理系统。
一句话定位:如果你需要一个"开箱即用"的 NestJS 权限中后台后端(认证、鉴权、数据权限、代码生成等能力齐全),选它。
核心能力
- RBAC 权限模型(用户/角色/菜单/按钮权限)
- 登录认证与会话管理(JWT / Redis Token)
- 接口鉴权(权限点校验 + 前后端联动)
- 数据权限(按角色数据范围进行 SQL 自动注入过滤)
- 代码生成(从表结构快速生成 CRUD 骨架)
- 文件上传(本地/MinIO/阿里云 OSS)
- 定时任务(可选)
- 实时通信(SSE)
技术栈
以仓库配置为准(package.json / .env.*):
| 分类 | 技术选型 | 说明 |
|---|---|---|
| 运行时 | Node.js 20+ | 版本以 package.json#engines 为准 |
| 语言 | TypeScript | - |
| 框架 | NestJS 11.x | - |
| 数据库 | MySQL 5.7+ / 8.x | - |
| ORM | TypeORM | - |
| 缓存 | Redis 7.x (ioredis) | - |
| 认证 | JWT (@nestjs/jwt + passport-jwt) | - |
| 接口文档 | Swagger (@nestjs/swagger) | /api-docs |
| 日志 | winston (nest-winston + winston-daily-rotate-file) | - |
目录结构
核心目录一览(详细结构见 快速开始):
text
youlai-nest/
docker/ # Docker 编排
sql/ # 初始化脚本
src/ # 业务源码
auth/ # 认证模块
system/ # 系统模块(用户/角色/菜单/部门/字典/通知/日志)
codegen/ # 代码生成模块
file/ # 文件管理模块
message/ # SSE 实时通信
common/ # 公共能力(守卫/拦截器/过滤器/常量/枚举/异常/工具类等)
config/ # 配置文件
types/ # 类型定义
.env.dev # 开发环境配置
package.json # pnpm 脚本与依赖必需服务
- MySQL
- Redis
