1. 程式人生 > >什麼是前後端分離(純屬個人理解,有錯請糾正)

什麼是前後端分離(純屬個人理解,有錯請糾正)

前後端分離是什麼樣的概念呢?node從中又有什麼作用呢?近期我群裡有一些朋友問我這種問題,下面我來說說我自己的看法。

        在以往我們開發人員,前端只需要把UI轉為html,以及一些頁面效果。一些邏輯,包括一些資料傳送都是後端處理。但是現在,我們前端需要做的東西有很多,不光是頁面呈現,還需要寫邏輯,資料展示。所以出現了前後端分離這一說法。

前後端分離:

        前端:整個頁面顯示以及頁面的互動邏輯。用ajax和node作為互動。其中node作為中間層。

        後端:提供api介面,利用redis儲存session,與資料庫互動。

流程:

        客戶端(瀏覽器)向node請求頁面互動。

        node向後端(這裡用java)轉發請求。java在傳送請求到資料庫。

        java返回結果給node。node返回頁面,提供資料。

前後端分離前端:

        前端可以不依賴後端,前端自己起一個服務,如果前端頁面處理好,後端的API還沒有提供,那麼,前端可以用mock模擬資料。

這裡出現一個問題,如果沒有服務,單頁面是不可以ajax請求資料,會出現跨域的問題。要麼瀏覽器做跨域。所以這裡用到node。

我們利用node的express開啟一個本地伺服器,利用node的 http-proxy-middleware 外掛將客戶端傳送給node的請求發給真正後伺服器。

node:

        node主要是為了分層開發,前端不需要知道後端是怎麼提供資料,怎麼操作。後端也不需要知道node是怎麼操作,前端是怎麼部署。前端可以利用node自己作處理。

        node本身有著非同步,非阻塞I/o。在處理併發量比較大的資料請求上有很大的優勢。