|
| 1 | +## 一、项目介绍 |
| 2 | + |
| 3 | +- 1、项目前端采用`vue3`开发的。前端项目地址 |
| 4 | + - [`github`地址](https://github.com/kuangshp/nest-admin-vue) |
| 5 | +- 2、采用`angular`模块化开发方式来构建项目,如果你想用`java`的`mvc`方式来开发`nestjs`项目你可以查看`v1`分支。 |
| 6 | +- 3、项目是基于`mysql`数据库,项目中全部采用`typeorm`来操作数据库,弱化了原生`sql`,避免前端的小伙伴没有`sql`基础。 |
| 7 | +- 4、实现用户名、手机号码、邮箱任一的方式实现登录。 |
| 8 | +- 5、使用自定义`token`的方式进行登录鉴权,采用自定义装饰器结合守卫来实现对接口鉴权拦截访问。 |
| 9 | +- 6、实现同一时间只能一个地方登录 |
| 10 | +- 7、如果你要演示菜单权限和接口权限,请自己创建账号、角色、分配菜单和接口权限。 |
| 11 | +- 8、使用`winston`做日志管理,并且根据小时来拆分日志 |
| 12 | +- 9、自定义装饰器实现对接口权限收集,如果这个接口要给角色分配权限的时候就直接加上装饰器,会自动在数据库生成数据 |
| 13 | + |
| 14 | +## 二、使用项目 |
| 15 | + |
| 16 | +- 1、本项目仅仅是实现了`rbac`的权限系统,对于其他的功能需要自己基于这个基础上去扩展 |
| 17 | + |
| 18 | +- 2、先在本地创建数据库 |
| 19 | + |
| 20 | +- 3、在项目的根目录的`.env`文件修改为你自己的数据库基本配置(地址、用户名、密码、数据库) |
| 21 | + |
| 22 | + ```properties |
| 23 | + DB_HOST=localhost |
| 24 | + DB_USERNAME=root |
| 25 | + DB_PASSWORD=123456 |
| 26 | + DB_DATABASE=nestjs-mysql |
| 27 | + ``` |
| 28 | + |
| 29 | +- 4、安装依赖包 |
| 30 | + |
| 31 | +- 5、启动项目 |
| 32 | + |
| 33 | + ```shell |
| 34 | + npm run start:dev |
| 35 | + ``` |
| 36 | + |
| 37 | +- 5、运行项目会自动初始化菜单数据和用户数据(账号:`admin`,密码:123456) |
| 38 | + |
| 39 | +- 6、如果你想初始化别的数据,可以在`src/services/init-db`中写上你要初始化的数据 |
| 40 | + |
| 41 | +## 二、主要实现功能 |
| 42 | + |
| 43 | +- [x] 实现用户的登录、登录鉴权、多点登录限制、菜单权限、接口权限 |
| 44 | + |
| 45 | +- [x] 基于`RBAC`实现权限控制 |
| 46 | + |
| 47 | +- [x] 集成`swagger`文档 |
| 48 | + |
| 49 | +- [x] `ecosystem.config.js`是采用`PM2`的配置文件,项目开发完后直接运行命令一键部署 |
| 50 | + |
| 51 | + ```shell |
| 52 | + npm run build |
| 53 | + # 开发环境 |
| 54 | + npm run pm2:dev |
| 55 | + # 生产环境 |
| 56 | + npm run pm2:prod |
| 57 | + ``` |
| 58 | + |
| 59 | +- [x] `winston`日志系统根据小时来划分日志管理,如果要实时查看日志,直接使用`PM2`查看日志 |
| 60 | + |
| 61 | + ```shell |
| 62 | + pm2 log |
| 63 | + ``` |
| 64 | + |
| 65 | +- [x] 自定义装饰器,被装饰器装饰的接口会自动进行入库操作 |
| 66 | + |
| 67 | +## 三、技术解答 |
| 68 | + |
| 69 | +> 本项目还在持续集成新功能进来,最后会加上前端做一个`cms`系统的`api`,后期会拉分支使用`graphql`提供`api` |
| 70 | +
|
| 71 | +- 1、有关于`nestjs`的技术问题或索要关于`nestjs`的电子书可以直接加我微信加入技术交流群(微信号:332904234)<font color="#f00">备注:nest 开发</font> |
| 72 | + |
| 73 | + <img src="https://shuiping.oss-cn-shenzhen.aliyuncs.com/nest-mysql-api/wx.jpg" width="200" height="220" style="margin-left:0" /> |
| 74 | + |
| 75 | +- 2、如果你觉得本项目对你帮助很大,**给一个赞** |
| 76 | +- 3、最近正在搞`Nestjs`微服务训练营,训练营后打算重构一版 |
0 commit comments