13 款驚豔的 Node.js 框架——第1部分

OneAPM官方技術部落格發表於2016-05-23

【編者按】本文作者為 Peter Wayner,主要介紹13款至精至簡的 Node.js 框架,幫助你簡化高速網站、豐富 API 以及實時應用的開發流程。本文系國內 ITOM 管理平臺 OneAPM 編譯呈現,以下為正文的第一部分。

Node.js 推出至今也有些年頭了,但它就像那初生的太陽,充滿朝氣。人們不斷地探索更新更好的平臺資訊釋出方式,於是選擇也越來越多。這些努力最終催生了多款 Node.js 框架,不論是 Node.js 愛好者還是新手,都可以盡情探索,尋求新的提升。

在下文中,筆者將介紹最引人注目的十多款框架。這些框架能有效簡化複雜網站的構建流程。如果你正打算開始新的專案,不妨嘗試其中的一些框架,可快速完成前期工作,並體驗這些專案中捆綁的功能。

1、express

13 款驚豔的 Node.js 框架——第1部分

Express 是一款以輕量級的方式處理請求的框架。它將 URL 對映至模板,將來自通用資料儲存中的資料填入值中。其標準的模板引擎為 Consolidate,但是由於樣式相當簡單,大多數模板引擎都能良好執行。

Express 團隊許諾說,MySpace 欲意採用 Express 打造新版本,以此提高其時髦度。如果你不知道 MySpace 為何物,可以問問祖父母,他們或許還有 MySpace 賬號。

Express 基於 MIT 許可證釋出,其 GitHub 地址在此

2、Koa.js

13 款驚豔的 Node.js 框架——第1部分

打造 Express 的團隊決定更進一步,使用全新可伸縮的呼叫棧構建新一代框架。名為 Koa.js 的呼叫棧允許你在呼叫及響應握手時新增新的特性。一開始,你需要寫一點程式碼來處理請求,但之後,就可以自定義請求處理的全過程。負責所有互動和錯誤處理的中介軟體都可以加以修改。此外,還有十多項外掛包,為呼叫棧新增了壓縮、快取、JSON 編碼等功能。

上圖展示了與 Koa 捆綁的某個模板庫使用的部分 Jade 標記。

Koa 基於 MIT 許可證釋出,其 GitHub 地址在此

3、Total.js

13 款驚豔的 Node.js 框架——第1部分

Total.js 棧的設計初衷是儘可能實現自動化。從 HTML 和 CSS 標記模板出發,Total 可以將之編譯為原始程式碼,壓縮之後再進行釋出。從某種意義上講,Total 是偽裝為框架的一個強力網站編譯器。

上圖展示了一個壽司吧網站的例項。

Total 基於 MIT 許可證釋出,其 GitHub 地址在此

4、Derby.js

13 款驚豔的 Node.js 框架——第1部分

Node.js 的一個重要特點是在瀏覽器與伺服器端使用相同的語言。Derby.js 通過試圖在兩端執行相同的程式碼,並同步執行結果,將這一特點發揮到極致。之後,它通過模板渲染、打包以及一些 MVC 來簡化這一過程。你無需擔心諸如編譯 CSS 程式碼的問題,因為 Derby 整合了這些功能。

上圖展示了一個基本的待辦事物清單。

Derby 基於 MIT 許可證釋出,其 GitHub 地址在此

5、Meteor.js

13 款驚豔的 Node.js 框架——第1部分

Meteor.js是一款實時應用,其設計初衷是打造與伺服器持續同步的 Web 應用。對模板或資料進行的修改會自動從伺服器端傳到瀏覽器端。重新描繪與更新操作直接由底層框架負責。並且,這一機制是雙向的。瀏覽器程式碼進行改動或寫入資料時就像直接運算元據庫一樣。同步完全在後臺進行。

上圖展示了一個在 Meteor 中打造的用於同步急救先鋒隊任務的應用。

Meteor 基於 Apache 許可證釋出,在其官網Github 均可找到安裝指令碼。

6、restify

13 款驚豔的 Node.js 框架——第1部分

並非每個應用都要求瀏覽器的全面支援。Restify 是旨在僅通過 API 提供資料的伺服器端框架。成功執行之後,Restify 輸出的是 JSON 資料。

Restify 相當強調除錯與分析,因此你可以深入鑽研、優化伺服器的效能。DTrace 整合效能好,支援度高,能清晰瞭解應用狀況,預測可能出現的錯誤。

上圖展示了一個在除錯會話中儲存的審計資料包。

Restify 基於非常基本的許可證釋出,使用時要求註明版權。其 GitHub 地址在此

以上為前6個框架,欲知後續內容,敬請關注 OneAPM 官方技術部落格

OneAPM 能幫助您輕鬆鎖定 Node.js 應用效能瓶頸,通過強大的 Trace 記錄逐層分析,直至鎖定行級問題程式碼。以使用者角度展示系統響應速度,以地域和瀏覽器維度統計使用者使用情況。想閱讀更多技術文章,請訪問 OneAPM 官方部落格

本文轉自 OneAPM 官方部落格

相關文章