介紹
Midway 是阿里巴巴 - 淘寶前端架構團隊,基於漸進式理念研發的 Node.js 框架。
Midway 基於 TypeScript 開發,結合了面向對象(OOP + Class + IoC)
與函數式(FP + Function + Hooks)
兩種編程范式,並在此之上支持了 Web / 全棧 / 微服務 / RPC / Socket / Serverless 等多種場景,致力於為用戶提供簡單、易用、可靠的 Node.js 服務端研發體驗
為什么要有 Midway
社區上也有很多類似的框架,那為什么還需要 Midway ?
原因有三點
- Midway 是阿里內部一直持續在研發的框架,之前 egg 是作為底層框架,需要有面向應用層面的框架來和集團場景對接
- 全量使用 TypeScript 是未來一段時間的趨勢,面向未來去迭代和研發是作為架構組創新的要求
- 雖然社區已經有 nest 這樣的框架,但是這些產品的維護、協作、修改都會受到商業化產品的制約,也無法做到需求的快速迭代和安全性保障,整體的研發理念也和我們不同,為此,我們需要有一套自研的框架體系
優勢
- Midway 框架是在內部已經使用 5 年以上的 Node.js 框架,有着長期投入和持續維護的團隊做后盾。
- 已經在每年的大促場景經過考驗,穩定性無須擔心
- 豐富的組件和擴展能力,例如數據庫,緩存,定時任務,進程模型,部署以及 Web,Socket 甚至 Serverless 等新場景的支持
- 一體化調用方案可以方便快捷和前端頁面協同開發
- 良好的 TypeScript 定義支持
- 國產化文檔和溝通容易簡單
特性
- 🐘 全功能:支持 Web 應用/Serverless/FaaS/微服務/小程序后端等多種場景,基於裝飾器和依賴注入開發企業級應用
- 🐦 前端集成:全新的雲端一體應用研發體驗,零 API 調用,使用 "React Hooks " 風格一體研發
- 🐴 跨平台:支持部署至普通 Server 或 Serverless/FaaS 環境
- 🐶 擴展:組件化擴展能力,另外支持使用 Koa/Express/Egg.js 生態插件
- 🐂 示例: 官方提供多種場景的示例代碼,方便開發者快速上手
- 🛡 TypeScript 全面支持
快速上手
npm -v # 如果是 npm v6 用這個命令 npm init midway --type=web my_midway_app # 如果是 npm v7 用這個命令 npm init midway -- --type=web my_midway_app
是你即將創建的項目根目錄名,CLI 會自動創建該目錄,並將初始化示例代碼寫入其中。
cd my_midway_app //進入工程目錄 npm run dev //啟動
如果啟動或者運行中npm報錯,請用cnpm
內容來自 http://www.midwayjs.org/doc/ 介紹 · 語雀 (yuque.com)