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