NestJS Admin 项目教程
1. 项目介绍
NestJS Admin 是一个基于 NestJS 框架的企业级中后台管理系统项目。它集成了 TypeScript、TypeORM、Redis、MySQL、JWT、Swagger 等技术,提供了细粒度的 RBAC 权限管理(权限可以细化到按钮级别),并实现了单点登录功能。该项目旨在帮助开发者快速构建高效、安全的企业级应用。
2. 项目快速启动
2.1 环境准备
在开始之前,请确保你的开发环境满足以下要求:
- Node.js 16.20.2+
- Docker 20.x+
- Docker Compose 2.17.0+
- MySQL 8.x+
- pnpm 包管理器
2.2 获取项目代码
首先,克隆项目代码到本地:
git clone https://github.com/buqiyuan/nest-admin.git
cd nest-admin
2.3 安装依赖
使用 pnpm 安装项目依赖:
pnpm install
2.4 配置数据库
在项目根目录下,找到 .env.development
文件,配置 MySQL 和 Redis 的连接信息。
2.5 启动项目
启动项目并访问 Swagger 文档:
pnpm dev
启动成功后,通过浏览器访问 http://localhost:7001/api-docs/
查看 Swagger 文档。
2.6 数据库迁移
如果需要初始化数据库或更新数据库结构,可以执行以下命令:
pnpm migration:run
如果需要生成新的迁移文件,可以使用:
pnpm migration:generate
2.7 Docker 部署
如果你希望使用 Docker 部署项目,可以执行以下命令:
pnpm docker:up
停止并删除所有容器:
pnpm docker:down
3. 应用案例和最佳实践
3.1 权限管理
NestJS Admin 提供了细粒度的 RBAC 权限管理,可以控制用户对系统中各个功能的访问权限。通过配置角色和权限,可以轻松实现权限的分配和管理。
3.2 单点登录
项目集成了 JWT 实现单点登录功能,用户只需登录一次即可访问所有授权的应用。
3.3 最佳实践
- 权限控制:在开发过程中,建议根据业务需求细化权限控制,确保系统的安全性。
- 代码规范:遵循 NestJS 的最佳实践,保持代码的可读性和可维护性。
- 性能优化:合理使用 Redis 缓存,减少数据库查询次数,提升系统性能。
4. 典型生态项目
4.1 Vue3 Admin
NestJS Admin 项目的前端部分基于 Vue3 和 Ant Design Vue 构建,提供了丰富的 UI 组件和交互体验。前端项目地址为 vue3-antdv-admin
。
4.2 TypeORM
TypeORM 是一个强大的 ORM 框架,支持多种数据库,如 MySQL、PostgreSQL 等。NestJS Admin 使用 TypeORM 进行数据库操作,简化了数据访问层的开发。
4.3 Swagger
Swagger 是一个用于生成、描述、调用和可视化 RESTful 接口的工具。NestJS Admin 集成了 Swagger,方便开发者查看和测试 API。
通过以上模块的介绍,你可以快速上手 NestJS Admin 项目,并根据实际需求进行定制和扩展。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考