我的後端NodeJS框架Summer釋出了

語言: CN / TW / HK

Screen Shot 2022-05-01 at 21.38.31.png

官網  https://summerjs.dev

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),不需要修改任何配置。