最流行的Node.js精簡型和全棧型開發(fā)框架介紹
快速開發(fā)而又容易擴展,高性能且魯棒性強。Node.js的出現(xiàn)讓所有網(wǎng)絡(luò)應(yīng)用開發(fā)者的這些夢想成為現(xiàn)實。但是,有如其他新的開發(fā)語言技術(shù)一樣,從頭開始使用Node.js的最基本功能來編寫代碼構(gòu)建應(yīng)用是一個非常劃不來的耗時的事情。這個問題的解決方案非常簡單且已經(jīng)經(jīng)受起時間的考驗:使用一個已經(jīng)提前打造好的開發(fā)框架。因此才會有如此多的如Express.js,Koa,Sails.js等框架的概念提出來并加以實現(xiàn)。
這些開發(fā)框架的角色非常簡單。就是要去為應(yīng)用開發(fā)人員節(jié)省時間,讓我們不用話費太多精力在一些不必要的事情上面。一旦一個框架可以滿足開發(fā)人員的“用最小的代價來獲得同樣的產(chǎn)出”的理念的話,該框架就可以大行其道起來。
在當(dāng)今的Node.js界中還沒有一個框架可以一統(tǒng)江湖,雖然Express.js依然是迄今為止最流行的框架。但當(dāng)今江湖上還有很多其他的門派在爭奪武林盟主之位。不能說你丐幫成員眾多別人就非要加入你丐幫的,大家都是為了學(xué)個防身之術(shù)(快速開發(fā)等Node.js框架),你丐幫有降龍十八掌(Express.js),人家武當(dāng)還有太極(Sails.js等)啦。
總體來說你可以將Node.js開發(fā)框架歸結(jié)為兩類:
- 精簡型框架
- 全棧型框架
下面我們就對這兩種框架進行探討。
精簡型框架
精簡型框架提供的是最基本的功能和APIs,這類框架本身就是被設(shè)計成用來改善Node.js開發(fā)過程中的主要方面的。但是,這些框架主要關(guān)注的方向都是提供基本的MVC開發(fā)框架功能和改善編碼體驗,而不是Node.js本身沒有的其他功能和技術(shù)的支持。下面是一些當(dāng)今流行的精簡型的Node.js框架。
Express.js- 最流行的框架
Express.js毫無疑問是當(dāng)今最受網(wǎng)絡(luò)應(yīng)用開發(fā)人員喜愛的Node.js開發(fā)框架了。作為一個有彈性的,輕量級的,容易使用框架,Express.js完全可以用來開發(fā)純JS或混合型的便于擴展的移動應(yīng)用。如果網(wǎng)上一些數(shù)據(jù)不是空穴來風(fēng)的話,當(dāng)今世上已經(jīng)有26000個網(wǎng)絡(luò)和移動應(yīng)用是使用該框架進行開發(fā)的。其中一些有名的使用者粉絲包括 MySpace, Countly, Yummly, Mozilla Persona, 以及Geekli.st。所以,如果你是一個Node開發(fā)新手的話,也許Express.js就是你應(yīng)該乘坐的快速列車。
KOA - Node.js下一代開發(fā)框架
作為一個由Express.js框架幕后開發(fā)團隊進行開發(fā)和維護的另外一個Node.js開發(fā)框架,KOA是一個被熱捧并冠名為Node.js的下一代開發(fā)框架的網(wǎng)絡(luò)開發(fā)框架。因為該框架是由Express.js進化而成,所以你可以看到他們的很多相似之處,當(dāng)然,區(qū)別肯定是有的了。它提供了一些額外的新功能,而該框架的中間件會把這些新功能和其他已有功能給隔離開來。另外,該框架還提供了高效開發(fā)和便于使用等功能特性來簡化啟動服務(wù)器和服務(wù)器相關(guān)功能的流程。
Total.js - 一個摩登的網(wǎng)絡(luò)應(yīng)用開發(fā)Node.js框架
盡管Total.js可以被認為是一個極簡型的框架,但是它依然是可以作為Node.js框架的一個補充。該框架的目標(biāo)用戶是那些想要打造具有非常強大的可擴展性的應(yīng)用的開發(fā)者。如果你現(xiàn)在想要打造的是一個網(wǎng)絡(luò)應(yīng)用,而該應(yīng)用也許今后會進行大量的擴展的話,Total.js也許是一個完美的選擇。
Sails.js
作為一個像Ruby On Rails一樣的提供MVC開發(fā)模式模擬功能的框架,Sails.js其實是一個魯棒的可擴展的Node.js開發(fā)框架。它自身是一個服務(wù)驅(qū)動(service-driven)的架構(gòu),而它的API集又是以數(shù)據(jù)驅(qū)動的方式進行提供的。它最大的用處應(yīng)該就是用來打造多用戶游戲,網(wǎng)絡(luò)聊天,實時交互應(yīng)用,以及企業(yè)泣別的Node.js應(yīng)用。
全棧型Node.js開發(fā)框架
全棧型開發(fā)框架才是NodeJS所以發(fā)光發(fā)熱的地方。大部分全棧型框架都包含了必須的應(yīng)用開發(fā)基礎(chǔ)庫,完整的模版引擎,網(wǎng)絡(luò)sockets,以及持久化的庫來加速對實時可擴展的網(wǎng)絡(luò)和移動應(yīng)用進行構(gòu)建。以下是當(dāng)今最盛行的全棧型Node.js框架:
Meteor - 極其簡單的應(yīng)用開發(fā)環(huán)境
作為一個設(shè)計成集成了所有MEAN開發(fā)框架功能的框架,Meteor是一個JavaScrtip框架的集大成者,JavaScritp既可以運行在客戶端瀏覽器中,同時也可以在服務(wù)器端的一個Node.js容器的Meteeor服務(wù)器中運行。另外,它還支持HTML代碼,CSS,以及其他有用的靜態(tài)工具。
所有這些功能在Meteor框架中都是非常有彈性的組織起來的,你可以很方便的用如文件目錄樹請求的方式進行使用。客戶端和服務(wù)端各個組件的打包和數(shù)據(jù)傳送都是由Meteor框架自動完成的。
Mean.IO- 完整的MEAN棧JavaScript開發(fā)框架
MEAN.IO是一個完全的JavaScript開發(fā)框架,它是專門設(shè)計成來簡化以及加速開發(fā)基于MEAN棧的網(wǎng)絡(luò)應(yīng)用的。該框架自帶了可以讓你把MEAN框架的四個技術(shù)進行無縫接合的工具,比如,MongoDB, Express.js, AngularJS, 以及Node.js,甚至其他開創(chuàng)性的如Bootstrap等技術(shù)。同時它還擁有了很多HTML和CSS以及其他額外的JavaScript代碼來大大的降低你的編碼時間。但是,該框架最亮眼的其實是它強悍的MVC架構(gòu)。你可以使用它來創(chuàng)建好模塊化的代碼,然后用其作為工具來打造出精致的網(wǎng)絡(luò)或移動應(yīng)用。MEAN.IO包是即插即用的,所以一旦有新功能包發(fā)布,你就可以像使用npm包一樣來獲得并使用它們。
MeanIO包系統(tǒng)把所有包都集成到mean項目里面,就好像這些代碼本身就是mean自身的一部分一樣。同時它也給開發(fā)者提供了所有必須的工具來把我們的包集成到我們的項目中。
相關(guān)文章
Nodejs中session的簡單使用及通過session實現(xiàn)身份驗證的方法
session的本質(zhì)使用cookie來實現(xiàn)。本文給大家介紹Nodejs中session的簡單使用及通過session實現(xiàn)身份驗證的方法,對node.js session相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧2016-02-02詳解PNPM?Monorepo依賴項管理功能模擬實現(xiàn)
這篇文章主要介紹了PNPM?Monorepo依賴項管理功能模擬實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03node.js中路由,中間件,get請求和post請求的參數(shù)詳解
本文給大家匯總介紹了node.js中的路由,中間件,get請求和post請求的參數(shù)的使用方法,非常的詳細,有需要的小伙伴可以參考下2017-12-12window10下node使用管理神器NVM安裝配置超詳細步驟
nvm全稱Node Version Manager是 Nodejs 版本管理器,它讓我們能方便的對 Nodejs 的版本進行切換,nvm 的官方版本只支持 Linux 和 Mac, Windows 用戶,可以用 nvm-windows,這篇文章主要介紹了window10下node使用管理神器NVM安裝配置超詳細步驟,需要的朋友可以參考下2023-01-01NodeJS學(xué)習(xí)筆記之Connect中間件模塊(二)
本文續(xù)上文的內(nèi)容,介紹下nodejs中connect中間件的使用方式及用途,希望大家喜歡。2015-01-01手把手教你使用TypeScript開發(fā)Node.js應(yīng)用
為了減少代碼編寫過程中出現(xiàn)的錯誤,以及更好的維護你的項目,本文將手把手教你配置一個簡單的開發(fā)環(huán)境來編寫Node.js的應(yīng)用程序,感興趣的小伙伴們可以參考一下2019-05-05使用cluster 將自己的Node服務(wù)器擴展為多線程服務(wù)器
nodejs在v0.6.x之后 增加了一個模塊 cluster 用于實現(xiàn)多進程,利用child_process模塊來創(chuàng)建和管理進程,增加程序在多核CPU機器上的性能表現(xiàn)。本文將介紹利用cluster模塊創(chuàng)建的多線程的問題。2014-11-11