不可錯過的Node.js框架

前言

Node.js是由Ryan Dahl於2009年建立的。它是一個開源的跨平臺運行時環境,用於開發服務器端和網絡應用程序,它是基於Google Chrome V8 JavaScript引擎構建的。Node.js使用事件驅動,非阻塞I/O模型而得以輕量和高效,很是適合在分佈式設備上運行數據密集型的實時應用。你能夠經過在Node.js中運行JavaScript,使用Ruby或者PHP語言作想作的任何事情。
因爲其具備能夠方便地搭建響應速度快、易於擴展的網絡應用等特性,Node.js受到了Netflix,Groupon,PayPal,LinkedIn,Uber,eBay等公司的信任,這進一步促進了Node.js的發展。
也由於它響應快,易於擴展等特色,也是實戰開發的首選。開發人員之因此喜歡Node.js,是由於其將腳本語言(JavaScript)的易用性和有着各類框架可供選擇的Unix網絡編程的強大功能相結合了。前端

Node特色

一、快速:V8 Google Engine受權Node.js提供一個快速發佈週期。這使得網絡鏈接,文件系統和數據庫的讀取和寫入超級快。
二、實時性:websocket協議的強大功能容許客戶端和服務器之間輕鬆快速通訊。它是即時的,是實時應用程序的理想選擇,如聊天或遊戲這類應用。
三、靈活:開發人員能夠爲客戶端,服務器端,後端和前端應用程序使用相同的語言(能夠同時執行),它提供端到端的解決方案。
四、跨平臺支持:Node.js能夠在任何操做系統上虛擬運行。這意味着Node.js可移植,因此,應用程序可以支持普遍的用戶受衆。
五、單線程:Node.js在不新增額外線程的狀況下,依然能夠對任務進行並行處理——Node.js是單線程的。它經過事件輪詢(event loop)來實現並行操做,對此,咱們應該要充分利用這一點——儘量的避免阻塞操做,取而代之,多使用非阻塞操做。
六、事件循環:Node.js使用事件循環來代替可伸縮性,而不是進程或線程。服務器在回調定義結束時自動進入事件循環。
七、社區:Node.js背後有一個強大的,多樣化的,活躍的和快速擴張的社區支持。開發人員使用Github共享成果,提出功能請求、上傳包或進行錯誤修復。node

流行的開源Node.js框架

針對如今開源比較流行的幾大框架作一個簡單的介紹,並不深究。web

Actionhero

這是一個用於Node.js的快速,輕量級和多重傳輸的API服務器,很是適合用於建立一個易於使用的工具包來製做可重用和可擴展的API。
能夠提供給http sockets,tcp sockets和web sockets。actionHero.js提供建立易用的,可重用可伸縮的API工具包。客戶端鏈接到actionHero.js服務器就可使用APIs,使用靜態內容和相互溝通。
actionHero.js服務器能夠處理請求和任務(延遲action 好比:send e-mail或者是後臺任務)。
Github stars:1,499
Github contributors: 67ajax

Loopback

這是一個由IBM建立的高度可擴展的API框架,容許使用很是少的編碼建立動態的端到端REST API。它經過爲開發人員提供一個簡單的API工具來補充Express框架。
Loopback API能夠鏈接設備,並與Android,iOS和AngularJS SDK集成以建立客戶端應用程序。對於應用程序的圖形版本,Loopback使用StrongLoop Arc。
Github stars: 7,817
Github contributors: 80數據庫

Restify

這是一個爲REST API而建立的輕量級框架,它是一個經過API提供數據的服務器端框架。Restify重點關注調試和分析,以優化服務器。
Github stars: 5,966
Github contributors: 142express

Socket.io

該框架的目的是支持實時web應用(例如文檔協做和數據交換)。Socket.io容許Web客戶端和服務器之間的事件驅動通訊。socket.io是一個跨平臺,多種鏈接方式自動切換,作即時通信方面的開發很方便,並且能和expressjs提供的傳統請求方式很好的結合,便可以在同一個域名,同一個端口提供兩種鏈接方式:request/response, websocket(flashsocket,ajax…).
Github stars: 28,887
Github contributors: 123
Full Stack
如下框架專一於全棧支持,它們涵蓋了應用程序開發的每一步,從中間件和UI到API和數據庫集成。編程

Meteor

Meteor是用於構建實時web應用程序的模型視圖控制器(MVC)框架,其與服務器不斷同步。它是內置的一套預編寫自包含模塊,支持應用程序代碼編寫。
使用Meteor構建的應用程序能夠在OS X,Windows和Linux操做系統上運行。
Github stars: 36,081
Github contributors: 321後端

Keystone

此框架是數據庫驅動Web應用程序和API的理想選擇,其中Express,MongoDB和Mongoose是Node堆棧的關鍵組件。
Github stars: 8,352
Github contributors: 181
Sinatra-Like
如下是輕量級框架,其功能相似於Sinatra。api

Express

Express是基於Node.js平臺快速、開放、極簡的web開發框架。Express是最重要的節點框架之一,是構建Web/移動應用程序和API的理想選擇。Express不是對Node.js已有的特性進行二次抽象,只是在它之上擴展了Web應用所需的基本功能。
Github stars: 28,683
Github contributors: 192服務器

Koa

這是一個無回調的輕量級中間件框架,容許編寫Web應用程序和REST API,還能夠添加新功能並自定義路徑中的內容,它支持ES6和最新的JavaScript版本。
對於Node.js的初級者來講,這不是理想的第一選擇。
Github stars: 12,779
Github contributors: 91

Hapi

Hapi框架是快速構建和API測試的理想選擇,也可使用Hapi構建完整的網站。它有一個十分不錯的插件集合,使其可以在不破壞其他代碼庫的狀況下,只在局部進行工做,對於團隊項目而言十分受用。
因爲Hapi是由Walmart開發人員建立的,所以它提供了企業級功能。
Github stars: 7,015
Github contributors: 151

在幾年的時間裏,因爲Node.js諸多的有點,收到企業和開發者的歡迎,逐漸發展成了一個成熟的開發平臺,吸引了許多開發者,並進一步促進大前端的發展和快速移動框架的發展。

本文同步分享在 博客「xiangzhihong8」(CSDN)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索