沒接觸過node,經(jīng)??次恼抡fnode做中間層,不知道具體指什么意思?比如在程序中解決了什么問題,如果說解決了渲染問題,那也是頁面端,前端框架已經(jīng)解決了,難道說是后端渲染前端框架,然后整個塞到前端嗎?
走同樣的路,發(fā)現(xiàn)不同的人生
很多項目中后端應(yīng)用往往不止一個服務(wù),而是一群各司其職的服務(wù),比如nginx的存在就是因為服務(wù)器上運行著多個服務(wù),而不同的網(wǎng)絡(luò)請求由不同的服務(wù)處理,需要在這些服務(wù)前假設(shè)一層nginx做為代理,將請求分發(fā)給不同的服務(wù),nginx在這里的角色就相當(dāng)于中間層。
對于一個比較復(fù)雜的web站點,頁面中的請求通常分為兩種,請求頁面與請求數(shù)據(jù)(ajax)。如果后端是個單體應(yīng)用,當(dāng)發(fā)現(xiàn)所有請求量太多應(yīng)付不過來的時候就可以考慮做這樣的分離,將處理頁面渲染的請求分給另一個服務(wù),擋在前面,自己只負責(zé)數(shù)據(jù)相關(guān)的請求。nodejs擅長處理io密集型任務(wù),很適合做處理頁面渲染的服務(wù),于是很多人選擇了nodejs。淘寶也是類似的架構(gòu),據(jù)說現(xiàn)在所有淘寶的頁面都是由node服務(wù)渲染的。
講道理就是用nodejs做靜態(tài)資源管理和請求轉(zhuǎn)發(fā)。
做到后端只管數(shù)據(jù)接口,前端負責(zé)路由,靜態(tài)資源。
加了node的中間層,可以讓前端處理view層和control層,后端只負責(zé)處理model層。前后端分離比較徹底,分工更明確一些吧。
另外就是有些框架在服務(wù)器不是node的時候SEO比較難做。加了node中間層后比較好做SEO
node就是鏈狀執(zhí)行
請求接收 -> 中間件1 -> 中間件2 -> ... 中間件n ... -> 返回
中間件就是某一個處理操作