头图

NestJS全栈进阶——后台管理系统搭建、TypeOrm使用【值得学习】

前言

技术千千万,学习永不断;虽然是咸鱼,也想努把力!!!
这段时间一直很迷茫,做前端这行也有6年了,眼看马上奔三的人了,但依旧是个菜逼,整天代码写了不少,但总感觉缺少些什么,一直都没什么进步;每下定决心准备沉淀下自己,过不了几天人又变懒了;这不新一轮的沉淀开始了,本次研究基于NodeJS搭建一套实用的后台管理系统。
项目地址:
github
gitee

为什么不选择学习新后端语言

  1. 如果重新学习一门后端语言,学习成本过高,再加上就算初步学会了,没有实战的机会,过不了多久就会忘掉。
  2. 数据库知识还没掌握好,这时再学习新语言,精力不够。
  3. 这一点才是最重要的,前面的都是借口,人太笨,理解能力太差了,担心自己学废。

为什么选择NestJS

  • 基于JavaSript,不需要重新学习新语言。
  • Nest (NestJS) 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的开发框架。它利用JavaScript 的渐进增强的能力,使用并完全支持 TypeScript
  • 用的人多,遇到问题好查询。

开始前的准备

  1. 一定的JavaScript、TypeScript基础
  2. Redis安装(在本项目中,只用来了单点登录)
  3. MySQL的安装,网上的教程有很多,这里就不多赘述了(我本地是安装在docker,方便管理)
  4. Nodejs & npm :配置本地开发环境,安装 Node 后你会发现 npm 也会一起安装下来 (V12+)
ps:mysql安装好后,手动新建一个名为"nest_admin"的数据库,后面的表创建就交给代码

实现功能

  • [X] JWT登录注册
  • [X] 单点登录拦截
  • [X] 权限接口拦截
  • [X] 分页逻辑封装
  • [X] 日志监控系统
  • [X] Swagger API接入、文档生成
  • [ ] 文件本地上传、云端上传
  • [ ] Nest微服务搭建

项目结构

├── config                         # 项目配置信息(数据库,redis,全局变量)
├── src
    ├── auth                       # 权限管理模块(登录认证,接口权限拦截)
    │   └── dto                    # swagger文档
    ├── cache                      # Redis缓存工具包
    ├── core
    │   ├── filter                 # 请求错误拦截
    │   │   ├── any-exception
    │   │   └── http-exception
    │   └── interceptor            # 请求成功拦截
    │       └── transform
    ├── menu                       # 菜单管理模块
    │   ├── dto
    │   └── entities               # 数据库表实体
    │   └── menu.controller.ts     # 控制器(接口定义)
    │   └── menu.service.ts        # 接口业务逻辑实现
    ├── middleware                 # 访问日志
    │   └── logger
    ├── organization               # 组织管理模块
    ├── role                       # 权限管理模块
    ├── user                       # 用户管理模块
    └── utils                      # 工具包

启动项目

ps:启动项目前请确保mysql,redis已启动
# clone
$ git clone https://github.com/sunshine824/Nestjs-Cli-Serve.git

# install
$ npm install

# development
$ npm run start

# watch mode
$ npm run start:dev

# production mode
$ npm run start:prod

swagger

启动项目之后,swagger访问地址:http://localhost:9080/docs

image.png

最后

文章暂时就写到这,后续会单独将每个模块拆出来讨论,如果本文对您有些许帮助,麻烦动动您的金手指搓个赞❤️。
本文如果有错误和不足之处,欢迎大家在评论区指出,多多提出您宝贵的意见!

最后分享项目地址:github
gitee

33 声望
0 粉丝
0 条评论
推荐阅读
如何编写一个d.ts文件
总结一下:从类型type角度分为:基本类型(string、number、boolean等)及其混合;复杂类型(class、function、object)及其混合(比如说又是class又是function)。从代码有效范围分为:全局变量、模块变量和又是...

Midqiu282阅读 110.5k评论 45

2022大前端总结和2023就业分析
我在年前给掘金平台分享了《2022年热点技术盘点》的前端热点,算是系统性的梳理了一下我自己对前端一整年的总结。年后,在知乎上看到《前端的就业行情怎么样?》,下面都是各种唱衰前端的论调,什么裁员,外包化...

i5ting27阅读 2.3k评论 4

封面图
过滤/筛选树节点
又是树,是我跟树杠上了吗?—— 不,是树的问题太多了!🔗 相关文章推荐:使用递归遍历并转换树形数据(以 TypeScript 为例)从列表生成树 (JavaScript/TypeScript) 过滤和筛选是一个意思,都是 filter。对于列表来...

边城17阅读 6.7k评论 3

封面图
vue-property-decorator使用手册
@Component 装饰器可以接收一个对象作为参数,可以在对象中声明 components ,filters,directives等未提供装饰器的选项,也可以声明computed,watch等

似曾相识17阅读 29.6k评论 7

JS 函数式概念: 管道 和 组合
微信搜索 【大迁世界】, 我会第一时间和你分享前端行业趋势,学习途径等等。本文 GitHub [链接] 已收录,有一线大厂面试完整考点、资料以及我的系列文章。

前端小智9阅读 933

Vue3 + Vite2 + TypeScript + Pinia(Vuex)+JSX 搭建企业级开发脚手架【开箱即用】
随着Vue3的普及,已经有越来越多的项目开始使用Vue3。为了快速进入开发状态,在这里向大家推荐一套开箱即用的企业级开发脚手架,框架使用:Vue3 + Vite2 + TypeScript + JSX + Pinia(Vuex) + Antd。废话不多话,...

阳晨@11阅读 3.5k

封面图
掌握 TypeScript:20 个提高代码质量的最佳实践
本文首发于微信公众号:大迁世界, 我的微信:qq449245884,我会第一时间和你分享前端行业趋势,学习途径等等。更多开源作品请看 GitHub [链接] ,包含一线大厂面试完整考点、资料以及我的系列文章。

前端小智9阅读 963

33 声望
0 粉丝
宣传栏