我的後端NodeJS框架Summer發佈了
Github https://github.com/calidan-x/summer
希望大家能給項目點顆星 ⭐
2020年起我入職 Thoughtworks
我的開發工作主要是寫前端,同時我也開始兼顧Java後端開發,在經歷了一年的Spring Boot開發後,我瞭解到了Java後端開發的好處,數據類型的嚴謹性,注入與註解寫法的易用性。
也開始琢磨着能不能自己寫一套類似Spring Boot的NodeJS後端框架。在利用NodeJS程序內存使用少,更適用於無服務,編寫代碼更靈活的特點基礎上,提高代碼類型判斷的嚴謹性,Summer框架就此開始....
之後我把許多工程開發上的具體問題的解決方案都融入到了框架中,每個模塊都儘可能的做細做好。
到今天Summer實現了後端需要的95%主要功能,還支持插件擴展包括:
- Restful路由
- 請求驗證
- 中間件
- 服務注入
- DTO轉換
- Session與Cookie
- 文件上傳
- 日誌
- 跨域
- 自定義裝飾器(註解)
- 環境配置
- 部署打包(Serverless支持)
- 靜態服務器
- 測試
- 數據庫
- Swagger文檔生成 ...
Summer 的目標是提供一個簡單快捷的適用於微服務與無服務(Serverless)的高質量企業級框架。
主要特點
-
愉快的編程體驗\ Summer 關心程序員的代碼編寫體驗,將學習難度和編碼難度降低,讓你輕鬆完成開發工作。
-
運行時 TypeScript 請求驗證\ TypeScript在編譯後會消去類型變成 JavaScript 代碼,API數據請求的類型判斷在其他 NodeJS 後端框架通常需要在請求的DTO上做額外標註,Summer在編譯時可以讀取並自動標註請求結構類型,省去了類型的重複標註。
-
簡單 DTO 轉換\ 後端開發會有大量的代碼在做 DTO 轉換,類似Java這樣的開發語言碰到大對象常常要做大量的賦值,Summer提供了簡單DTO轉換方法。
-
自定義 Decorator\ 除內置的 Decorator 外,Summer還提供了簡易的 Decorator 創建方法,讓你輕鬆寫出 @RequireLogin 之類的功能,讓你的代碼更優雅。
-
一次編譯部署多種類型服務器\ Summer 使用 ESBuild 打包,一次性打包成一個可執行文件,讓部署變得更簡單。這個兼容的可執行文件不僅可以使用 node 命令啟動運行在Linux服務器或 K8S 集羣,還可以直接部署到 Serverless 平台(AWS Lambda/阿里雲FC),不需要修改任何配置。