前言
技術千千萬,學習永不斷;雖然是鹹魚,也想努把力!!!
這段時間一直很迷茫,做前端這行也有6年了,眼看馬上奔三的人了,但依舊是個菜逼,整天代碼寫了不少,但總感覺缺少些什麼,一直都沒什麼進步;每下定決心準備沉澱下自己,過不了幾天人又變懶了;這不新一輪的沉澱開始了,本次研究基於NodeJS搭建一套實用的後台管理系統。
項目地址:
github、
gitee
為什麼不選擇學習新後端語言
- 如果重新學習一門後端語言,學習成本過高,再加上就算初步學會了,沒有實戰的機會,過不了多久就會忘掉。
- 數據庫知識還沒掌握好,這時再學習新語言,精力不夠。
- 這一點才是最重要的,前面的都是藉口,人太笨,理解能力太差了,擔心自己學廢。
為什麼選擇NestJS
- 基於JavaSript,不需要重新學習新語言。
- Nest (NestJS) 是一個用於構建高效、可擴展的
Node.js服務器端應用程序的開發框架。它利用JavaScript的漸進增強的能力,使用並完全支持TypeScript - 用的人多,遇到問題好查詢。
開始前的準備
- 一定的JavaScript、TypeScript基礎
- Redis安裝(在本項目中,只用來了單點登錄)
- MySQL的安裝,網上的教程有很多,這裏就不多贅述了(我本地是安裝在docker,方便管理)
- 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
最後
文章暫時就寫到這,後續會單獨將每個模塊拆出來討論,如果本文對您有些許幫助,麻煩動動您的金手指搓個贊❤️。
本文如果有錯誤和不足之處,歡迎大家在評論區指出,多多提出您寶貴的意見!
最後分享項目地址:github、
gitee