mockjs,json-server一起搭建前端通用的数据模拟框架教程


Posted in Javascript onDecember 18, 2017

无论是在工作,还是在业余时间做前端开发的时候,难免出现后端团队还没完成接口的开发,而前端团队却需要实现对应的功能,不要问为什么,这是肯定存在的。本篇文章就是基于此原因而产出的。希望对有这方面的需求的同志有所帮助。

一、使用的组件包

1. mockjs:用于模拟查询结果

2. json-server:搭建模拟服务器,以及模拟CRUD的相关操作接口

二、具体的实现1. 建立项目,并安装相应的依赖

cnpm install --save-dev mockjs json-server

上述命令为安装依赖,下图为项目结果:

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的。下载示例代码

以上这篇mockjs,json-server一起搭建前端通用的数据模拟框架教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery文本框高亮显示插件代码
Apr 02 Javascript
js 关于=+与+=日期函数使用说明(赋值运算符)
Nov 15 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
Jan 23 Javascript
JS测试显示屏分辨率以及屏幕尺寸的方法
Nov 22 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
Sep 08 Javascript
JS更改select内option属性的方法
Oct 14 Javascript
js实现页面跳转的几种方法小结
May 16 Javascript
js实现带进度条提示的多视频上传功能
Dec 13 Javascript
基于jquery实现五星好评
Nov 18 jQuery
vue-cli项目代理proxyTable配置exclude的方法
Sep 20 Javascript
Angular Material Icon使用详解
Nov 07 Javascript
JavaScript动态生成表格的示例
Nov 02 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
Dec 18 #Javascript
vue的无缝滚动组件vue-seamless-scroll实例
Dec 18 #Javascript
分析JavaScript数组操作难点
Dec 18 #Javascript
微信小程序基于本地缓存实现点赞功能的方法
Dec 18 #Javascript
JavaScript模块详解
Dec 18 #Javascript
webpack打包js文件及部署的实现方法
Dec 18 #Javascript
react+redux的升级版todoList的实现
Dec 18 #Javascript
You might like
php模板之Phpbean的目录结构
2008/01/10 PHP
sae使用smarty模板的方法
2013/12/17 PHP
PHP面向对象程序设计实例分析
2016/01/26 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
2017/12/31 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
PHP数据对象映射模式实例分析
2019/03/29 PHP
Extjs列表详细信息窗口新建后自动加载解决方法
2010/04/02 Javascript
仿jQuery的siblings效果的js代码
2011/08/09 Javascript
javascript加号"+"的二义性说明
2013/03/04 Javascript
判断js对象是否拥有某一个属性的js代码
2013/08/16 Javascript
js实现鼠标滑过文字链接色彩变化的效果
2015/05/06 Javascript
Windows系统下Node.js的简单入门教程
2015/06/23 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
2015/11/15 Javascript
JavaScript中文件上传API详解
2016/04/01 Javascript
JS简单编号生成器实现方法(附demo源码下载)
2016/04/05 Javascript
JavaScript如何实现跨域请求
2016/08/05 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
2016/08/15 Javascript
Bootstrap jquery.twbsPagination.js动态页码分页实例代码
2017/02/20 Javascript
angular-cli修改端口号【angular2】
2017/04/19 Javascript
基于 webpack2 实现的多入口项目脚手架详解
2017/06/26 Javascript
解决vue-router进行build无法正常显示路由页面的问题
2018/03/06 Javascript
python实现堆栈与队列的方法
2015/01/15 Python
Django中对数据查询结果进行排序的方法
2015/07/17 Python
Python之用户输入的实例
2018/06/22 Python
python实现名片管理系统
2018/11/29 Python
python词云库wordcloud的使用方法与实例详解
2020/02/17 Python
通过代码实例了解Python3编程技巧
2020/10/13 Python
CSS3中background-clip和background-origin的区别示例介绍
2014/03/10 HTML / CSS
Hotels.com印度:酒店预订
2019/05/11 全球购物
区级文明单位申报材料
2014/05/15 职场文书
应届生求职信范文
2014/05/26 职场文书
优秀教师事迹材料
2014/12/15 职场文书
入伍通知书
2015/04/23 职场文书
2016年社区创先争优活动总结
2016/04/05 职场文书
Java 超详细讲解设计模式之中的抽象工厂模式
2022/03/25 Java/Android
mysql实现将字符串字段转为数字排序或比大小
2022/06/14 MySQL