【編者按】本文作者為 Peter Wayner,主要介紹13款至精至簡的 Node.js 框架,幫助你簡化高速網站、豐富 API 以及實時應用的開發流程。本文系國內 ITOM 管理平臺 OneAPM 編譯呈現,以下為正文第二部分。點此查看本文的第一部分。
Node.js 推出至今也有些年頭了,但它就像初生的太陽,充滿朝氣。人們不斷地探索更新更好的平臺信息發布方式,于是選擇也越來越多。這些努力最終催生了多款 Node.js 框架,不論是 Node.js 愛好者還是新手,都可以盡情探索,尋求新的提升。下文將介紹另外7款不錯的 Node.js 框架。
7、Hapi
借助 Hapi 框架,可以搭建完整的網站。但是,很多 Hapi 用戶專注于用其打造從后臺抽取數據,并快速高效地進行發布的服務。每臺服務器只是一組映射的集合,這些映射將 URL 路徑對應到生成結果的函數,而這些路由則通過 Hapi API 進行配置,而不是寫入新代碼中。此外,Hapi 社區支持多種多樣的插件,可用于處理搭建服務時必要的身份驗證、安全等問題。
上圖展示了 Boom 插件正式判定的幾個標準化錯誤,Boom 插件提供了一組工具,可以幫助用戶更好地了解可能出現的 HTTP 錯誤。
Hapi 基于要求基本屬性的許可證發布,其 GitHub 地址在此。
8、Sails.js
如果你需要打造一個企業級的自定義 Web 應用,Sails.js MVC 框架能幫助你處理許多應用核心任務,同時適應性很高,能與其他工具協作。據其維護人員稱:Sails 不僅“無所謂前端環境”,而且能適配“任何數據庫”。并且,如果你使用該框架生成的標準 REST API,其中的大部分實現過程都是自動化的。如果你喜歡 Ruby 的慣例哲學以及 MVC 的分離特性,Sails 的一切會顯得似曾相識,你也能很快上手。
上圖展示了一個 Sails 應用的基本目錄結構。
Sails 基于 MIT 許可證發布,其 GitHub 地址在此。
9、StrongLoop
創建 API 的大部分工作都可以自動化。一旦知道了數據模型,搭建用于數據編輯的工具在很大程度上只是練習而已。StrongLoop 自動化了大部分此類操作,并添加了針對大多數大型數據存儲,諸如 Oracle、MySQL 及 MongoDB,的連接器。此外,為了提高適應性,他們不是支持隨時間變化的動態數據模型,就支持帶有固定模式的靜態模型。這由你決定。此外,還提供了一個現成的安全層,具備訪問控制表及一些不錯的移動服務。以上一切都是基于 Express 搭建的,因此,你要從 Express 的全部功能集入手。
上圖展示了 StrongLoop 的 API 探索工具。
對于測試項目,StrongLoop 可基于混合型開源許可證發布。其 GitHub 地址在此。
10、ActionHero
許多框架都把為全功能用戶提供高端支持設為目標,這些用戶往往運行著瀏覽器、通過 JSON 實現交互。ActionHero 不僅能實現這一點,還在低端,通過有線協議與 TCP 直接通信。如果你需要比 JSON 更為簡單的數據格式,這就非常方便了。此外,如果你想發送原始文件,這一機制也大有益處,因為 ActionHero 的發布方式與 CDN 類似,不會要求你運行 Apache 或 Nginx。
上圖展示了 ActionHero 處理不同動作以及與 Redis 連接的棧結構。
ActionHero 基于 Apache 許可證發布,其 GitHub 地址在此。
11、Keystone.js
Express 與 MongoDB 是 Node.js 棧的關鍵組成部分。但是,你需要將二者結合,再添加一點新的功能,才能真正實現消息傳遞。Keystone.js 旨在聯結 Express 與 MongoDB 以實現一個內容管理系統。不過,借助于 Keystone 提供的 Yeoman 框架構建服務,這一過程已經大為簡化。Yeoman 能幫助你填好文件,安裝好運行博客或博文等內容所需的所有組件。
上圖展示了一個使用 Yeoman 及 Keystone 搭建的圖片共享演示網頁的一部分。
Keystone 基于 MIT 許可證發布,其 GitHub 地址在此。
12、Sequelize
像 PostgresQL 或 MySQL 之類的 SQL 數據庫來自事務處理世界,你發出一個命令,進而等待答復。而 Node 則建立于在 JavaScript 中頗為常見的異步回調架構。Sequelize 將二者進行了整合。當你為其支持的五大數據庫中的任意一種創建 SQL 查詢時,Sequelize 會發送查詢,并承諾在數據庫返回查詢結果時調用你的函數。它將舊世界與新的架構命令(architectural imperative)進行了聯姻。
上圖展示了如何重寫一條舊 SQL 查詢以適應 Node 摩登世界。
Sequelize 的源碼基于要求基本屬性的許可證發布,其 GitHub 地址在此。
13、Mean.io
實際上,Mean 并不是一個 Node.js 框架。它是一組預先優化過以協調運行的框架與技術的集合。作為縮略詞,MEAN 實際上代表著 MongoDB, Express, Angular 以及 Node。每個組成成分本身都是 Node 生態系統中最流行的部分。當它們聚集在一起時,使用起來甚至更加方便。
上圖展示了 Node 包管理器如何安裝這些成分,以及用于開發應用的一個新指令: mean
。
組成 Mean 的各個成分有其自己的許可證以及源碼庫。
OneAPM 能幫助您輕松鎖定 Node.js 應用性能瓶頸,通過強大的 Trace 記錄逐層分析,直至鎖定行級問題代碼。以用戶角度展示系統響應速度,以地域和瀏覽器維度統計用戶使用情況。想閱讀更多技術文章,請訪問 OneAPM 官方博客。
本文轉自 OneAPM 官方博客