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

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

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

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

7、Hapi

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

藉助 Hapi 框架,可以搭建完整的網站。但是,很多 Hapi 使用者專注於用其打造從後臺抽取資料,並快速高效地進行釋出的服務。每臺伺服器只是一組對映的集合,這些對映將 URL 路徑對應到生成結果的函式,而這些路由則通過 Hapi API 進行配置,而不是寫入新程式碼中。此外,Hapi 社群支援多種多樣的外掛,可用於處理搭建服務時必要的身份驗證、安全等問題。

上圖展示了 Boom 外掛正式判定的幾個標準化錯誤,Boom 外掛提供了一組工具,可以幫助使用者更好地瞭解可能出現的 HTTP 錯誤。

Hapi 基於要求基本屬性的許可證釋出,其 GitHub 地址在此

8、Sails.js

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

如果你需要打造一個企業級的自定義 Web 應用,Sails.js MVC 框架能幫助你處理許多應用核心任務,同時適應性很高,能與其他工具協作。據其維護人員稱:Sails 不僅“無所謂前端環境”,而且能適配“任何資料庫”。並且,如果你使用該框架生成的標準 REST API,其中的大部分實現過程都是自動化的。如果你喜歡 Ruby 的慣例哲學以及 MVC 的分離特性,Sails 的一切會顯得似曾相識,你也能很快上手。

上圖展示了一個 Sails 應用的基本目錄結構。

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

9、StrongLoop

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

建立 API 的大部分工作都可以自動化。一旦知道了資料模型,搭建用於資料編輯的工具在很大程度上只是練習而已。StrongLoop 自動化了大部分此類操作,並新增了針對大多數大型資料儲存,諸如 Oracle、MySQL 及 MongoDB,的聯結器。此外,為了提高適應性,他們不是支援隨時間變化的動態資料模型,就支援帶有固定模式的靜態模型。這由你決定。此外,還提供了一個現成的安全層,具備訪問控制表及一些不錯的移動服務。以上一切都是基於 Express 搭建的,因此,你要從 Express 的全部功能集入手。

上圖展示了 StrongLoop 的 API 探索工具。

對於測試專案,StrongLoop 可基於混合型開源許可證釋出。其 GitHub 地址在此

10、ActionHero

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

許多框架都把為全功能使用者提供高階支援設為目標,這些使用者往往執行著瀏覽器、通過 JSON 實現互動。ActionHero 不僅能實現這一點,還在低端,通過有線協議與 TCP 直接通訊。如果你需要比 JSON 更為簡單的資料格式,這就非常方便了。此外,如果你想傳送原始檔案,這一機制也大有益處,因為 ActionHero 的釋出方式與 CDN 類似,不會要求你執行 Apache 或 Nginx

上圖展示了 ActionHero 處理不同動作以及與 Redis 連線的棧結構。

ActionHero 基於 Apache 許可證釋出,其 GitHub 地址在此

11、Keystone.js

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

Express 與 MongoDB 是 Node.js 棧的關鍵組成部分。但是,你需要將二者結合,再新增一點新的功能,才能真正實現訊息傳遞。Keystone.js 旨在聯結 Express 與 MongoDB 以實現一個內容管理系統。不過,藉助於 Keystone 提供的 Yeoman 框架構建服務,這一過程已經大為簡化。Yeoman 能幫助你填好檔案,安裝好執行部落格或博文等內容所需的所有元件。

上圖展示了一個使用 Yeoman 及 Keystone 搭建的圖片共享演示網頁的一部分。

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

12、Sequelize

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

像 PostgresQL 或 MySQL 之類的 SQL 資料庫來自事務處理世界,你發出一個命令,進而等待答覆。而 Node 則建立於在 JavaScript 中頗為常見的非同步回撥架構。Sequelize 將二者進行了整合。當你為其支援的五大資料庫中的任意一種建立 SQL 查詢時,Sequelize 會傳送查詢,並承諾在資料庫返回查詢結果時呼叫你的函式。它將舊世界與新的架構命令(architectural imperative)進行了聯姻。

上圖展示瞭如何重寫一條舊 SQL 查詢以適應 Node 摩登世界。

Sequelize 的原始碼基於要求基本屬性的許可證釋出,其 GitHub 地址在此

13、Mean.io

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

實際上,Mean 並不是一個 Node.js 框架。它是一組預先優化過以協調執行的框架與技術的集合。作為縮略詞,MEAN 實際上代表著 MongoDB, Express, Angular 以及 Node。每個組成成分本身都是 Node 生態系統中最流行的部分。當它們聚集在一起時,使用起來甚至更加方便。

上圖展示了 Node 包管理器如何安裝這些成分,以及用於開發應用的一個新指令: mean

組成 Mean 的各個成分有其自己的許可證以及原始碼庫。

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

本文轉自 OneAPM 官方部落格

原文地址:http://www.javaworld.com/article/3066837/application-development/13-fabulous-frameworks-for-nodejs.html

相關文章