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