如果你已經(jīng)知道node是什么,那我們就要學(xué)習(xí)它的框架了。而它的框架又分為兩大類,Web框架和全??蚣埽酉聛?lái)我們一個(gè)一個(gè)的來(lái)了解。
API框架
使用場(chǎng)景:為跨平臺(tái)應(yīng)用提供統(tǒng)一的數(shù)據(jù)模型,而渲染由前端/客戶端自行解決,通常用于前后端分離開發(fā)。
知名框架有:
(0)restify(文檔、Github、NPM)
(1)ActionHero.js(官網(wǎng)、Github、NPM)
(2)LoopBack(官網(wǎng)、Github、NPM)
(3)Frisby(官網(wǎng)、Github、NPM)
Web框架
Web框架可以細(xì)分為
API框架和應(yīng)用程序框架,前者能夠開發(fā)出RESTful風(fēng)格的API,后者在此基礎(chǔ)上還包括渲染、模板等為前端準(zhǔn)備的功能。-
Web應(yīng)用程序框架根據(jù)風(fēng)格不同又可以分為Rails和Sinatra兩種。
-
- Rails風(fēng)格:不重復(fù)自己和約定優(yōu)于配置,以及嚴(yán)格遵循MVC結(jié)構(gòu)開發(fā)。
- 不重復(fù)自己,即Don‘t repeat yourself,DRY規(guī)則。指系統(tǒng)中的每一個(gè)部分,都必須有一個(gè)單一的、明確的、權(quán)威的代表——人所編寫的代碼和測(cè)試所構(gòu)成的系統(tǒng)必須能夠表達(dá)所應(yīng)表達(dá)的內(nèi)容,但是盡量不能含有重復(fù)代碼(
三次法則)。旨在軟件開發(fā)中,減少重復(fù)信息。 - 約定優(yōu)于配置,即convention over configuration,是一種設(shè)計(jì)范式。本質(zhì)就是,開發(fā)人員僅需規(guī)定應(yīng)用中不符約定的部分,減少其需做決定的數(shù)量。Rails當(dāng)中很多規(guī)矩是按其作者David的意見一開始便制定好了的,所以在Rails上開發(fā)應(yīng)用程序時(shí),開發(fā)人員可以更專注于應(yīng)用程序自身的設(shè)計(jì),省卻了解以及配置基礎(chǔ)框架上面的時(shí)間。
-
知名框架有:
(0)Sails.js(官網(wǎng)、Github、NPM)
(1)geddy(官網(wǎng)、Github、NPM)
(2)CompoundJS(官網(wǎng)、Github、NPM) 原railswayjs
- Sinatra風(fēng)格:高度可配置,注重開發(fā)的自由度。
知名框架有:
(0)Express(官網(wǎng)、Github、NPM)TJ大神開發(fā),Node.js官方推薦
(1)hapi(官網(wǎng)、Github、NPM)
(2)koa.js(官網(wǎng)、Github、NPM)
(3)flaliron(官網(wǎng)、Github、NPM)
(4)total.js(官網(wǎng)、Github、NPM)
(5)locomotive(官網(wǎng)、Github、NPM)
全??蚣埽‵ull-stack framework)
組成:運(yùn)行環(huán)境、數(shù)據(jù)庫(kù)、Web框架和前端引擎。
知名框架:MEAN,MEAN即Mongodb + Express + Angular.js + Node.js,做為全??蚣?,其中除了Node.js不能被替換以外其他都行。
目標(biāo):創(chuàng)建從前端到后端全部使用javascript的web應(yīng)用。