10 款 Node.js 框架,可用於你的下一個項目

Node.js 是一個開源的跨平臺運行時環境,用於開發服務器端和網絡應用程序,它基於 Google Chrome V8 JavaScript 引擎構建,你可使用 Node.js 中的 JavaScript 來實現用 Ruby 或 PHP 所作的一切東西。web

本文整理了 10 款 Node.js 框架,根據應用程序功能將框架分爲三類:API,全棧和類 Sinatra 的框架。文中的數據統計於各項目的 GitHub 主頁(時間爲 2016.12.20)。之後可能會有變更。ajax

API

如下框架由 API 驅動,是快速部署 Node.js API 服務器的理想選擇。數據庫

1. Actionhero

這是一個適用於 Node.js 的快速、輕量級和多重傳輸的 API 服務器,很是適合建立一個易於使用的工具包來製做可重用和可擴展的 API。集成了集羣性能和延遲任務的功能。express

Actionhero 可提供上層的支持(例如經過 JSON 集成),同時也能夠在底層工做(例如與 TCP 協議通訊)。它具備集羣準備、內置支持後臺任務和零停機部署的功能,而且它能像 CDN 同樣分發而不須要運行 Apache 或 Nginx。api

GitHub stars:1,511
GitHub contributors:68
瀏覽器

2. Loopback

這是一個由 IBM 建立的高度可擴展的 API 框架,可使用很是少的編碼建立動態端到端的 REST APIs。它經過爲開發人員提供一個簡單的 API 工具來補充 Express 框架。緩存

Loopback API 能夠鏈接設備,並且能夠與 Android,iOS 和 AngularJS SDK 集成以建立客戶端應用程序。對於應用程序的圖形版本,Loopback 使用 StrongLoop Arc。服務器

GitHub stars:7,936
GitHub contributors:82
websocket

3. Restify

這是一個爲構建 REST APIs 而建立的輕量級框架。它是一個經過 API 提供數據的服務器端框架。Restify 重點關注調試和分析,以便優化服務器。網絡

GitHub stars:6,046
GitHub contributors:146

4. Socket.io

這個框架主要適用於實時 Web 應用的場景(例如文檔協做和數據交換)。Socket.io 能夠實現 Web 客戶端和服務器之間的事件驅動通訊;它在瀏覽器中像客戶端庫同樣工做,還有一個用於 Node.js 的服務器端庫。

Socket.io 實現了實時雙向的基於事件的通信機制。旨在讓各類瀏覽器與移動設備上實現實時 app 功能,模糊化各類傳輸機制。它是跨平臺的,多種鏈接方式自動切換,作即時通信方面的開發很方便,並且能和 Express 提供的傳統請求方式很好的結合,便可以在同一個域名,同一個端口提供兩種鏈接方式:request/response, websocket(flashsocket,ajax…)

GitHub stars:29,306
GitHub contributors:124

全棧

如下框架專一於對全棧的支持。它們涵蓋了應用程序開發的每一步,從中間件和 UI 到 API 和數據庫的集成。

5. Meteor

Meteor 提供構建現代 Web 應用程序的超簡單環境。這是用於構建實時 Web 應用程序的模型視圖控制器(MVC)框架,它與服務器不斷同步。內置了一套預先編寫好的獨立的模塊,支持編寫應用程序代碼。

使用 Meteor 構建的應用程序能夠在 OS X,Windows 和 Linux 操做系統上運行。它是一個「執拗(opinionated)」的框架。

(編者注:opinionated,編者理解的意思是若是不按照某種方式使用這個框架,而是用別的方法使用會致使用起來很困難、不方便)

GitHub stars:36,236
GitHub contributors:323

6. Keystone

Keystone,以 Express 和 MongoDB 爲基礎搭建的 Node.js CMS 和 Web 應用程序平臺。此框架是數據庫驅動的 Web 應用程序和 API 的理想選擇,其中 Express,MongoDB 和 Mongoose 是 Node 的關鍵組件。

GitHub stars:8,541
GitHub contributors:183

7. MERN

相似 Mean,是一個全棧 Javascript 開發架構,使用 MongoDB,Express,React,Node。具備如下特性

  • React 組件的熱加載
  • 模塊化文件結構
  • 使用 React 路由器進行代碼拆分
  • Ava 測試運行(並行運行測試)
  • 國際化支持
  • 支持 Docker
  • 支持代碼生成

相似 Sinatra 的框架

8. Express

Express 是一個簡潔而靈活的 Node.js Web 應用框架,提供一系列強大特性以幫助你建立各類 Web 應用。它是快速、「不執拗」,簡約和有效的中間件路由框架。Express 是最重要的必需 Node.js 框架之一,是構建 Web/移動應用程序和 API 的理想選擇。

GitHub stars:29,008
GitHub contributors:192

9. Koa

Koa 是下一代的 Node.js 的 Web 框架。由 Express 團隊設計。旨在提供一個更小型、更富有表現力、更可靠的 Web 應用和 API 的開發基礎。

這是一個無回調的輕量級中間件框架,能夠用於編寫 Web 應用程序和 REST APIs,還能夠添加新功能並自定義路徑中的任何內容。它支持 ES6 和最新的 JavaScript 版本。但它不是第一次使用 Node.js 的用戶的最佳框架。

GitHub stars:13,022
GitHub contributors:92

10. Hapi

Node.js 的服務器框架。Hapi 是一個用來構建基於 Node.js 的應用和服務的富框架,使得開發者把重點放在便攜可重用的應用邏輯而不是構建架構。內建輸入驗證、緩存、認證和其餘 Web 應用開發經常使用的功能。

此框架是快速構建和 API 測試的理想選擇,你也可使用 Hapi 構建完整的網站。它有一個偉大的插件集合,使其可以在部分工做,而不破壞其他的代碼庫。十分適用於團隊合做項目。

因爲 Hapi 是由沃爾瑪的開發人員建立,所以它提供了企業級功能。

GitHub stars:7,100
GitHub contributors:151

原文連接:https://my.oschina.net/hardbone/blog/809244
做者:開源中國 – 局長
轉載必須在正文中標註並保留原文連接和做者等信息

相關文章
相關標籤/搜索