下面小編就為大家分享一篇mockjs,json-server一起搭建前端通用的資料模擬框架教程,具有很好的參考價值,希望對大家有所幫助。一起跟著小編過來看看吧
無論是在工作,還是在業餘時間做前端開發的時候,難免出現後端團隊還沒完成接口的開發,而前端團隊卻需要實現對應的功能,不要問為什麼,這是肯定存在的。本篇文章就是基於此原因而產出的。希望對有這方面的需求的同誌有所幫助。
一、使用的元件套件
#1. mockjs:用於模擬查詢結果
#2. json-server:建立模擬伺服器,以及模擬CRUD的相關操作介面
二、具體的實作1. 建立項目,並安裝對應的依賴
cnpm install --save-dev mockjs json-server
上述指令為安裝依賴,下圖為專案結果:
##說明:
data:此資料夾存放的為利用mockjs模擬的查詢結果,dataProvider後面單獨簡單lib:包含的一個jquery文件,用於模擬ajax請求用# route:json-server的路由表,用來模擬crud操作用,沒搞清楚如何實作多個db.jsonindex.js:模擬伺服器入口檔test.html:測試cors2. 建立基礎的json-server伺服器
var JsonServer = require('json-server'); var path = require('path') var Server = JsonServer.create(); var defaultMid = JsonServer.defaults({ "noCors": false, "static": path.join(__dirname, "/lib") }); var router = JsonServer.router(path.join(__dirname, '/route/db.json')); Server.use(defaultMid); Server.use(router); Server.listen(8009); console.log('start 8009.....');此部分內容完全按照json-server的官方說明編寫,值得注意的是static和noCors的設置,他是作為一個中間件來完成的。
3. 增加mockjs的應用程式
在這裡mockjs只作為參生資料的基石,而dataProvider.js卻提供了統一外部存取介面的能力。也就是把模擬資料以module(相當於mvc中的controller)和func(相當於mvc中的action)來進行分隔。不知這種實作是否可行(本人現在專案中暫時是這樣使用的。)
#3.1 首先,在data資料夾中建立emp.js文件,編寫如下內容:var mockjs = require('mockjs'); module.exports = { list: function(){ var data = mockjs.mock({ 'list|3':[ { 'id|+1':1 } ] }); return data.list; } }此處就是對mockjs的使用3.2 dataProvider使用實作模組的收集
var emp = require('./emp'); var moduels = { emp: emp } module.exports = { execute: function(m, f, args){ return moduels[m][f].call(moduels[m], args); } }3.3 json中增加get方法,用於取得數據
var provider = require('./data/dataProvider'); Server.get('/data',function(req,res){ var moduleName = req.body ? req.body.moduleName : req.query.moduleName; var funName = req.body ? req.body.funName : req.query.funName; var arg = null; res.json(provider.execute(moduleName, funName)); res.end(); });如果要存取emp下的List,則位址為:http://localhost:8009/data?moduleName=emp&funName=list
4.總結
1. json-server的db.json檔案只能有一個,這裡可以配置多個資料實體,他是以get為獲取,post為寫入http協定來實現數據的CRUD的看到這裡,你是否有感覺到搭建一個資料模擬伺服器如此簡單,當然只是webapi的。下載範例程式碼
上面是我整理給大家的,希望今後對大家有幫助。 相關文章:以上是如何建構前端通用的資料模擬框架(詳細教學)的詳細內容。更多資訊請關注PHP中文網其他相關文章!