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