首頁 >web前端 >js教程 >如何建構前端通用的資料模擬框架(詳細教學)

如何建構前端通用的資料模擬框架(詳細教學)

亚连
亚连原創
2018-06-20 12:03:562640瀏覽

下面小編就為大家分享一篇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.json

index.js:模擬伺服器入口檔

test.html:測試cors

2. 建立基礎的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的。

下載範例程式碼

上面是我整理給大家的,希望今後對大家有幫助。

相關文章:

在JavaScript中如何實現彈性效果

在axios中如何實作cookie跨域

使用JS如何實作小球拋物線軌跡運動

使用JavaScript如何實作二元樹遍歷

以上是如何建構前端通用的資料模擬框架(詳細教學)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn