一、项目介绍
- 1、采用
java
的MVC
的经典开发模型(在nestjs
开发中也可以使用基于angular
方式的模块化开发模式,看个人喜好),来构建项目结构,也符合后端企业开发的需求。 - 2、项目是基于
mysql
数据库开发的 - 3、使用
jwt
的方式进行登录鉴权(颗粒度仅到菜单权限)
二、使用项目
-
1、本项目仅仅是实现了
rbac
的权限系统,对于其他的功能需要自己基于这个基础上去扩展 -
2、先在本地创建数据库
-
3、在项目的根目录的
.env
文件修改为你自己的数据库基本配置(地址、用户名、密码、数据库) -
4、启动项目
npm run start:dev
-
5、运行第五步的时候会默认初始化菜单数据和用户数据(账号:
admin
,密码:123456) -
6、如果你想初始化别的数据,可以在
src/services/init-db
中写上你要初始化的数据
二、主要实现功能
-
实现用户的登录、
jwt
鉴权 -
如果你是要将已有的项目改造成新的项目(基于已经有数据表的时候),可以尝试使用命令
# 会将数据库文件映射生成typeORM的实体类 npm run db1
-
基于
RBAC
实现权限控制项目中采用基于账号的方式来替换用户的,(对一个用户可能有几个账号的情况下的扩展),所以拿到项目后,一般流程是
- 先创建用户
- 创建账号的时候关联对应的用户
-
字典管理主要是用于项目中配置下拉框使用的
-
集成
swagger
文档localhost:7000/api/v1/docs # 端口号根据.env文件的PORT=7000 来写
-
在
module
中统一封装了几个模块code
是验证码模块file
是文件模块upload-img
图片上传,可以上传到本地和阿里云oss
上upload-excel
导入excel
文件
redis-utils
封装了几个关于redis
的模块yunpian-sms
是云片网发送手机短信的
-
ecosystem.config.js
是采用PM2
的配置文件,项目开发完后直接运行命令一键部署npm run build # 开发环境 npm run pm2:dev # 生产环境 npm run pm2:prod
-
日志系统没有开发,直接使用
PM2
查看日志pm2 log
-
如果你的想做日志收集可以继承
Kafka
三、技术解答
本项目还在持续集成新功能进来,最后会加上前端做一个
cms
系统的api
,后期会拉分支使用graphql
提供api