javascript - 使用node如何進(jìn)行前后臺(tái)分離?
問(wèn)題描述
最近使用express+ jade + mongodb做了個(gè)小練習(xí),使用的jade模板引擎在渲染數(shù)據(jù)時(shí)需要在頁(yè)面代碼中嵌入js邏輯代碼,個(gè)人很不喜歡這種開(kāi)發(fā)模式,所以想問(wèn)一下使用node如何實(shí)現(xiàn)前后臺(tái)的完全分離?
問(wèn)題解答
回答1:前后端分離頁(yè)面中也得嵌入 js 代碼啊,前端要跑的邏輯肯定還是得跑,express + jade 已經(jīng)做到了服務(wù)端渲染,通過(guò)數(shù)據(jù)渲染模版產(chǎn)生前端內(nèi)容,前端再跑相對(duì)應(yīng)的前端邏輯,這樣已經(jīng)算是完全分離了。
回答2:讓node只負(fù)責(zé)后端,jade可以扔掉了。前端用原生js進(jìn)行ajax請(qǐng)求獲取數(shù)據(jù),再進(jìn)行相應(yīng)的邏輯處理即可
回答3:通過(guò) express + mongodb 可以將 URL 映射到數(shù)據(jù)庫(kù)———— 換言之,URL是數(shù)據(jù)的指針。
在 express + mongodb 技術(shù)上再加一層 jade 意味著,數(shù)據(jù)要流經(jīng) jade,跟模版耦合成 html 數(shù)據(jù)流 之后通過(guò)response返回給客戶端
前后端分離,在于從數(shù)據(jù)庫(kù)里取出來(lái)的數(shù)據(jù)是直接返回在 response 或者經(jīng)過(guò)模版引擎處理后再返回。
( 體會(huì)下: res.json 和 res.render )
回答4:可以參考一下淘寶前后端分離實(shí)踐
細(xì)節(jié)有待商榷,但是大體模式都講清楚了。如它里面所說(shuō)的,要看你要的“前后端分離”分離成怎么樣。以及你對(duì)前端這個(gè)東西的理解了。
回答5:jade模板換成html,前端用ajax就ok了吧。。。(前端相當(dāng)于靜態(tài)資源,nodejs可以看作為一個(gè)web server)
相關(guān)文章:
1. node.js - mongodb查找子對(duì)象的名稱(chēng)為某個(gè)值的對(duì)象的方法2. html5 - datatables 加載不出來(lái)數(shù)據(jù)。3. 測(cè)試自動(dòng)化html元素選擇器元素ID或DataAttribute [關(guān)閉]4. html5和Flash對(duì)抗是什么情況?5. 利用IPMI遠(yuǎn)程安裝centos報(bào)錯(cuò)!6. javascript - QQ第三方登錄的問(wèn)題7. 在mac下出現(xiàn)了兩個(gè)docker環(huán)境8. 運(yùn)行python程序時(shí)出現(xiàn)“應(yīng)用程序發(fā)生異常”的內(nèi)存錯(cuò)誤?9. spring-mvc - spring-session-redis HttpSessionListener失效10. 正在使用electron和node.js做桌面應(yīng)用,需要實(shí)時(shí)監(jiān)聽(tīng)是否有網(wǎng)絡(luò)連接,node或者electron是否可以做到

網(wǎng)公網(wǎng)安備