Giter VIP home page Giter VIP logo

nestjs-mysql-api's Introduction

一、项目介绍

  • 1、采用javaMVC的经典开发模型(在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
  • 如果你是新项目可以使用数据迁移的方式,将你写的实体类,在需要的时候手动映射到数据库

    npm run generate
    npm run db
  • 基于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:prod
  • 日志系统没有开发,直接使用PM2查看日志

    pm2 log

三、技术解答

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

  • 1、有关于nestjs的技术问题可以直接加我微信(微信号:332904234)备注:nest 开发

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

nestjs-mysql-api's People

Contributors

kuangshp avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.