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 相关文章推荐
用javascript动态调整iframe高度的方法
Mar 06 Javascript
用JQuery 实现的自定义对话框
Mar 24 Javascript
JavaScript面向对象之体会[总结]
Nov 13 Javascript
ECMAScript 创建自己的js类库
Nov 22 Javascript
JavaScript设计模式学习之“类式继承”
Mar 12 Javascript
JavaScript多并发问题如何处理
Oct 28 Javascript
javascript实现的登陆遮罩效果汇总
Nov 09 Javascript
BootStrap selectpicker
Jun 20 Javascript
jQuery实现的网格线绘制方法
Jun 20 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
Sep 13 Javascript
Vue使用鼠标在Canvas上绘制矩形
Dec 24 Vue.js
js动态添加带圆圈序号列表的实例代码
Feb 18 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
摩卡咖啡
2021/03/03 咖啡文化
杏林同学录(三)
2006/10/09 PHP
PHP如何解决网站大流量与高并发的问题
2011/06/25 PHP
基于session_unset与session_destroy的区别详解
2013/06/03 PHP
一个简单且很好用的php分页类
2013/10/26 PHP
php生成二维码时出现中文乱码的解决方法
2014/12/18 PHP
PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
2019/05/13 PHP
用JavaScript和注册表脚本实现右键收藏Web页选中文本
2007/01/28 Javascript
Javascript 调试利器 Firebug使用详解六
2009/07/05 Javascript
Mootools 1.2教程 正则表达式
2009/09/15 Javascript
浅谈JavaScript正则表达式分组匹配
2015/04/10 Javascript
js 求时间差的实现代码
2016/04/26 Javascript
Flask中获取小程序Request数据的两种方法
2017/05/12 Javascript
JS实现带动画的回到顶部效果
2017/12/28 Javascript
vue 指令之气泡提示效果的实现代码
2018/10/18 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
vue中使用v-model完成组件间的通信
2019/08/22 Javascript
解决webpack多页面内存溢出的方法示例
2019/10/08 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
nodejs+express最简易的连接数据库的方法
2020/12/23 NodeJs
[48:44]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS HGT
2014/05/22 DOTA
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
查看端口并杀进程python脚本代码
2019/12/17 Python
python实现局域网内实时通信代码
2019/12/22 Python
python实现从尾到头打印单链表操作示例
2020/02/22 Python
python编写实现抽奖器
2020/09/10 Python
焊接专业毕业生求职信
2013/10/01 职场文书
党的群众路线教育实践活动实施方案
2014/10/31 职场文书
2014年酒店服务员工作总结
2014/12/08 职场文书
大学生年度个人总结
2015/02/15 职场文书
幼儿园辞职书
2015/02/26 职场文书
教师节获奖感言
2015/07/31 职场文书
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python
教你用Java Swing实现自助取款机系统
2021/06/11 Java/Android