為了更好的分工合作,讓前端能在不依賴后端環(huán)境的情況下進行開發(fā),其中一種手段就是為前端開發(fā)者提供一個web容器,這個本地環(huán)境就是 mock server。

要完整運行前端代碼,通常并不需要完整的后端環(huán)境,我們只要在mock se" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > 你是如何構建 Web 前端 Mock Server 的?

你是如何構建 Web 前端 Mock Server 的?

時間:2022-08-31 22:33:01 | 來源:網(wǎng)站運營

時間:2022-08-31 22:33:01 來源:網(wǎng)站運營

謝邀

為了更好的分工合作,讓前端能在不依賴后端環(huán)境的情況下進行開發(fā),其中一種手段就是為前端開發(fā)者提供一個web容器,這個本地環(huán)境就是 mock server。

要完整運行前端代碼,通常并不需要完整的后端環(huán)境,我們只要在mock server中實現(xiàn)以下幾點就行了:

  1. 能渲染模板
  2. 實現(xiàn)請求路由映射
  3. 數(shù)據(jù)接口代理到生產(chǎn)或者測試環(huán)境
能渲染模板很簡單,在mock server中集成模板引擎就行了,然后提供模擬的頁面數(shù)據(jù)用于完整渲染頁面,不過有時候生產(chǎn)環(huán)境中的模板引擎可能有一些環(huán)境依賴的擴展,這個要單獨實現(xiàn)。

請求路由映射,實現(xiàn)原理就是要讓本地的mock server有一個router,能接收所有HTTP請求,然后在router中根據(jù)線上的路由約定,實現(xiàn)一套一樣的規(guī)則,這個也不難,不贅述了。

最后數(shù)據(jù)接口代理。與前端相關的HTTP請求一共就3種響應情況:

  1. 渲染頁面的請求;
  2. 靜態(tài)資源的請求;
  3. 獲取數(shù)據(jù)的請求。
由于實現(xiàn)了router,我們把渲染頁面的請求在mock server中處理掉,直接輸出本地模板的渲染結果;靜態(tài)資源的請求直接返回文件內(nèi)容;而把數(shù)據(jù)請求代理到測試或者生產(chǎn)環(huán)境,本地就不用mock了(當然,如果出現(xiàn)新的接口測試環(huán)境沒有的,可以追加router,在mock server想響應假數(shù)據(jù))

至于題主說的url一致性問題,其實不存在的。你的這個

http://www.foo.com/bar 的數(shù)據(jù)請求,在js中應該這樣寫:

$.get('/bar', callback)
這種寫法,省略了host,在線下開發(fā)時,其最終結果是請求

http://127.0.0.1:3000/bar,而由于我們在mock server中實現(xiàn)了路由規(guī)則,這個請求實際上被代理到了測試/生產(chǎn)環(huán)境去獲取數(shù)據(jù)。而當你把代碼部署到線上時,其訪問真實請求地址又自動變成了你期望的

http://www.foo.bar,正常運行。

畫個圖總結一下:

補充一些Tips:

很多前端工程師以為前端分離的唯一途徑是接入NodeJS作為UI層,其實不是的,還有一種方案就是這種Mock Server,前端工程師直接寫后端模板,效果有時候甚至更好,而且對已有前后端架構的改動成本最小。
====== 更新 ======

評論中

@相守鼎 給出了常用腳本語言下開啟簡易web server的方法,可以用于實現(xiàn)Mock Server:

74
73
25
news

版權所有? 億企邦 1997-2022 保留一切法律許可權利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關閉