博客 / 詳情

返回

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

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.