• Stars
    star
    871
  • Rank 52,055 (Top 2 %)
  • Language
    TypeScript
  • Created about 5 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

NestJs CRUD for RESTful API使用nestjs+mysql+typeorm+jwt+swagger企业项目中的RBAC权限管理、实现单地方登录。

请直接看nest9分支的代码,那个分支还在迭代,迭代完合并到master分支

一、项目介绍

  • 1、项目前端采用react开发的。前端项目地址
  • 2、采用angular模块化开发方式来构建项目,如果你想用javamvc方式来开发nestjs项目你可以查看v1分支。
  • 3、项目是基于mysql数据库,项目中全部采用typeorm来操作数据库,弱化了原生sql,避免前端的小伙伴没有sql基础。
  • 4、实现用户名、手机号码、邮箱任一的方式实现登录。
  • 5、使用自定义token的方式进行登录鉴权,采用自定义装饰器结合守卫来实现对接口鉴权拦截访问。
  • 6、实现同一时间只能一个地方登录
  • 7、如果你要演示菜单权限和接口权限,请自己创建账号、角色、分配菜单和接口权限。
  • 8、使用winston做日志管理,并且根据小时来拆分日志
  • 9、自定义装饰器实现对接口权限收集,如果这个接口要给角色分配权限的时候就直接加上装饰器,会自动在数据库生成数据

二、使用项目

  • 1、本项目仅仅是实现了rbac的权限系统,对于其他的功能需要自己基于这个基础上去扩展

  • 2、先在本地创建数据库

  • 3、在项目的根目录的.env文件修改为你自己的数据库基本配置(地址、用户名、密码、数据库)

    DB_HOST=localhost
    DB_USERNAME=root
    DB_PASSWORD=123456
    DB_DATABASE=nestjs-mysql
  • 4、安装依赖包

  • 5、启动项目

    npm run start:dev
  • 5、运行项目会自动初始化菜单数据和用户数据(账号:admin,密码:123456)

  • 6、如果你想初始化别的数据,可以在src/services/init-db中写上你要初始化的数据

二、主要实现功能

  • 实现用户的登录、登录鉴权、多点登录限制、菜单权限、接口权限

  • 基于RBAC实现权限控制

  • 集成swagger文档

  • ecosystem.config.js是采用PM2的配置文件,项目开发完后直接运行命令一键部署

    npm run build
    # 开发环境
    npm run pm2:dev
    # 生产环境
    npm run pm2:prod
  • winston日志系统根据小时来划分日志管理,如果要实时查看日志,直接使用PM2查看日志

    pm2 log
  • 自定义装饰器,被装饰器装饰的接口会自动进行入库操作

三、技术解答

本项目还在持续集成新功能进来,最后会加上前端做一个cms系统的api,后期会拉分支使用graphql提供api

  • 1、有关于nestjs的技术问题或索要关于nestjs的电子书可以直接加我微信加入技术交流群(微信号:332904234)备注:nest 开发

  • 2、如果你觉得本项目对你帮助很大,给一个赞

  • 3、最近正在搞Nestjs微服务训练营,训练营后打算重构一版

More Repositories

1

vue3-admin

admin-web后台管理项目骨架是基于vue3搭建起来的项目,前端ui库使用的是element-plus组件库,实现登录鉴权,动态菜单功能
Vue
164
star
2

gin-admin-api

基于 Gin 模块化开发的 API 框架设计,封装了常用功能,使用简单,致力于进行快速的业务研发。比如,支持 cors 跨域、jwt 签名验证 的使用 等等。
Go
51
star
3

nest-code-generate

@nestjs/cli脚手架的增强版,提供输入数据库表名自动生成控制器、服务层、实体类等基本的curd
JavaScript
31
star
4

cms-egg-api

egg的后台管理系统api的种子工程,提供基本的用户管理、角色管理、权限管理、资源管理模块
JavaScript
28
star
5

tornado-pro

tornado企业级开发项目框架搭建
Python
26
star
6

nestjs-mysql-api-react

react + typescript实现的中后台模板框架,配合https://github.com/kuangshp/nestjs-mysql-api 项目的前端代码
TypeScript
19
star
7

nest-learn

nestjs项目
TypeScript
15
star
8

angular-admin-web

angular12和antd搭建的后台管理系统基础模板,包括登录、左侧导航、拦截器、ngrx状态管理等
TypeScript
14
star
9

angular4-model-node

对angular4数据请求的封装
TypeScript
9
star
10

nest-mongoose

nest连接mongoose的操作
TypeScript
9
star
11

nest-logs

nestjs中实现日志打印包
TypeScript
7
star
12

nest-mongoose-graphql

介绍nest+mongoose+graphql在项目中使用
TypeScript
7
star
13

react-admin-web

react17+typescript后台管理系统模板,使用router-v6版本实现路由守卫,路由权限
TypeScript
6
star
14

nest-mysql-api-front

配合https://github.com/kuangshp/nestjs-mysql-api 的前端项目
Vue
6
star
15

cms-front

对接egg后台api的前端项目https://github.com/kuangshp/cms-egg-api
JavaScript
6
star
16

django-graphql-vue-react

简单使用vue桥联django+graphql项目
JavaScript
5
star
17

nest-graphql-api

使用nestjs实现graphql api操作,实现基本的权限,上传文件单点登录等功能
TypeScript
4
star
18

generate-model

go语言从数据库映射生成数据模型
Go
3
star
19

maucash-model

vue+ts弹框组件
JavaScript
3
star
20

ali-rds-async

将ali-rds使用generator的方式改造成promise
JavaScript
3
star
21

ng8-ant

使用angular8+ant.design构建一个后端管理系统
TypeScript
3
star
22

post-demo

前后端分离开发中处理跨域的问题
HTML
3
star
23

typeorm-model-generator-cli

该工具将数据库的表生成model
JavaScript
3
star
24

maucash-utils

封装一些常用的方法
JavaScript
2
star
25

node-sso

简单生成随机token
TypeScript
2
star
26

mysql

2
star
27

simp-node-auth

使用typescirpt简单实现node-web开发密码加密
JavaScript
1
star
28

nest-admin-vue

Vue
1
star
29

angular-ngrx

angular8+ngrx8的基本使用demo
TypeScript
1
star
30

node-pay-sdk

nodejs中使用微信或者支付宝支付
JavaScript
1
star
31

nest-api-cache

nest中借用redis实现api接口缓存
TypeScript
1
star