【編者按】本文做者爲 Peter Wayner,主要介紹13款至精至簡的 Node.js 框架,幫助你簡化高速網站、豐富 API 以及實時應用的開發流程。本文系國內 ITOM 管理平臺 OneAPM 編譯呈現,如下爲正文的第一部分。html
Node.js 推出至今也有些年頭了,但它就像那初生的太陽,充滿朝氣。人們不斷地探索更新更好的平臺信息發佈方式,因而選擇也愈來愈多。這些努力最終催生了多款 Node.js 框架,不管是 Node.js 愛好者仍是新手,均可以盡情探索,尋求新的提高。node
在下文中,筆者將介紹最引人注目的十多款框架。這些框架能有效簡化複雜網站的構建流程。若是你正打算開始新的項目,不妨嘗試其中的一些框架,可快速完成前期工做,並體驗這些項目中捆綁的功能。git
Express 是一款以輕量級的方式處理請求的框架。它將 URL 映射至模板,未來自通用數據存儲中的數據填入值中。其標準的模板引擎爲 Consolidate,可是因爲樣式至關簡單,大多數模板引擎都能良好運行。github
Express 團隊許諾說,MySpace 欲意採用 Express 打造新版本,以此提升其時髦度。若是你不知道 MySpace 爲什麼物,能夠問問祖父母,他們或許還有 MySpace 帳號。數據庫
Express 基於 MIT 許可證發佈,其 GitHub 地址在此。express
打造 Express 的團隊決定更進一步,使用全新可伸縮的調用棧構建新一代框架。名爲 Koa.js 的調用棧容許你在調用及響應握手時添加新的特性。一開始,你須要寫一點代碼來處理請求,但以後,就能夠自定義請求處理的全過程。負責全部交互和錯誤處理的中間件均可以加以修改。此外,還有十多項插件包,爲調用棧添加了壓縮、緩存、JSON 編碼等功能。瀏覽器
上圖展現了與 Koa 捆綁的某個模板庫使用的部分 Jade 標記。緩存
Koa 基於 MIT 許可證發佈,其 GitHub 地址在此。服務器
Total.js 棧的設計初衷是儘量實現自動化。從 HTML 和 CSS 標記模板出發,Total 能夠將之編譯爲原始代碼,壓縮以後再進行發佈。從某種意義上講,Total 是假裝爲框架的一個強力網站編譯器。框架
上圖展現了一個壽司吧網站的實例。
Total 基於 MIT 許可證發佈,其 GitHub 地址在此。
Node.js 的一個重要特色是在瀏覽器與服務器端使用相同的語言。Derby.js 經過試圖在兩端運行相同的代碼,並同步運行結果,將這一特色發揮到極致。以後,它經過模板渲染、打包以及一些 MVC 來簡化這一過程。你無需擔憂諸如編譯 CSS 代碼的問題,由於 Derby 集成了這些功能。
上圖展現了一個基本的待辦事物清單。
Derby 基於 MIT 許可證發佈,其 GitHub 地址在此。
Meteor.js是一款實時應用,其設計初衷是打造與服務器持續同步的 Web 應用。對模板或數據進行的修改會自動從服務器端傳到瀏覽器端。從新描繪與更新操做直接由底層框架負責。而且,這一機制是雙向的。瀏覽器代碼進行改動或寫入數據時就像直接操做數據庫同樣。同步徹底在後臺進行。
上圖展現了一個在 Meteor 中打造的用於同步急救先鋒隊任務的應用。
Meteor 基於 Apache 許可證發佈,在其官網與 Github 都可找到安裝腳本。
並不是每一個應用都要求瀏覽器的全面支持。Restify 是旨在僅經過 API 提供數據的服務器端框架。成功運行以後,Restify 輸出的是 JSON 數據。
Restify 至關強調調試與分析,所以你能夠深刻鑽研、優化服務器的性能。DTrace 集成性能好,支持度高,能清晰瞭解應用情況,預測可能出現的錯誤。
上圖展現了一個在調試會話中保存的審計數據包。
Restify 基於很是基本的許可證發佈,使用時要求註明版權。其 GitHub 地址在此。
以上爲前6個框架,欲知後續內容,敬請關注 OneAPM 官方技術博客。
OneAPM 能幫助您輕鬆鎖定 Node.js 應用性能瓶頸,經過強大的 Trace 記錄逐層分析,直至鎖定行級問題代碼。以用戶角度展現系統響應速度,以地域和瀏覽器維度統計用戶使用狀況。想閱讀更多技術文章,請訪問 OneAPM 官方博客。
本文轉自 OneAPM 官方博客