背景 :

前后端开发依赖后端数据, 当前端页面开发完成 ,后端在没有提供前端数据的情况下 ,前端无法测试,

导致开发效率低 ,速度慢 ,为了解决这一问题 ,通过Mock模拟生成数据在不改变原有代码前提下拦截url返回数据。

开始实验

1、随机生成长度1~3的数组

// array数组
var data = Mock.mock({
'list|1-3': [{// 属性 list 的值是一个数组,其中含有 1 到 10 个元素
'id|+1': 1, // 属性 id 是一个自增数,起始值为 1,每次增 1
'name|1':"吴小明", //字符串
"city": {
'number|1':"03443",
'cityname|1':"北京"
}
}]
})

2、拦截url 返回生成数据

Mock.mock( rurl, template )

记录数据模板。当拦截到匹配 rurl 的 Ajax 请求时,将根据数据模板 template 生成模拟数据,并作为响应数据返回。

	Mock.mock( '/user_list', data )

3、创建一个ajax请求

	$.get('/user_list',function(response){
console.log("result->"+response);
})

4、输出结果

result->{
"list": [
{
"id": 1,
"name": "吴小明",
"city": {
"number": "03443",
"cityname": "北京"
}
},
{
"id": 2,
"name": "吴小明",
"city": {
"number": "03443",
"cityname": "北京"
}
}
]
}

其他格式

// object对象
var data = Mock.mock({
"city|2": {
"310000": "上海市",
"320000": "江苏省",
"330000": "浙江省",
"340000": "安徽省"
}
})

结果 :

result->{
"city": {
"310000": "上海市",
"320000": "江苏省"
}
}
// 生成多数组
var data = Mock.mock({
'code':0,
'result':{
'monthAmount|1-5': [{
'date': '2016-08',
'income|1000-100000':2289,
'expend|1000-100000':2000
}],
'billList|1-10': [{
'id|+1': 1,
'amount|1000-500000':500000,
'balance|1000-500000':500000,
'type|1-2':1,
'sourceId|1-5':2,
'orderNumber':'45678900443432',
'mchName':'大王杂货店',
'date':"2017-09-14 16:58:52"
}]
}
})

结果 :

result->{
"code": 0,
"result": {
"monthAmount": [
{
"date": "2016-08",
"income": 12645,
"expend": 56038
},
{
"date": "2016-08",
"income": 30689,
"expend": 46730
}
],
"billList": [
{
"id": 1,
"amount": 191426,
"balance": 197800,
"type": 2,
"sourceId": 2,
"orderNumber": "45678900443432",
"mchName": "大王杂货店",
"date": "2017-09-14 16:58:52"
},
{
"id": 2,
"amount": 340886,
"balance": 432764,
"type": 1,
"sourceId": 2,
"orderNumber": "45678900443432",
"mchName": "大王杂货店",
"date": "2017-09-14 16:58:52"
},
{
"id": 3,
"amount": 361772,
"balance": 306595,
"type": 1,
"sourceId": 3,
"orderNumber": "45678900443432",
"mchName": "大王杂货店",
"date": "2017-09-14 16:58:52"
},
{
"id": 4,
"amount": 360725,
"balance": 35917,
"type": 1,
"sourceId": 3,
"orderNumber": "45678900443432",
"mchName": "大王杂货店",
"date": "2017-09-14 16:58:52"
},
{
"id": 5,
"amount": 182107,
"balance": 413671,
"type": 1,
"sourceId": 2,
"orderNumber": "45678900443432",
"mchName": "大王杂货店",
"date": "2017-09-14 16:58:52"
},
{
"id": 6,
"amount": 351296,
"balance": 42905,
"type": 1,
"sourceId": 4,
"orderNumber": "45678900443432",
"mchName": "大王杂货店",
"date": "2017-09-14 16:58:52"
},
{
"id": 7,
"amount": 457212,
"balance": 43885,
"type": 1,
"sourceId": 3,
"orderNumber": "45678900443432",
"mchName": "大王杂货店",
"date": "2017-09-14 16:58:52"
}
]
}
}

完整代码已提交到github ,使用的话可以直接从github上面下载运行

https://github.com/fozero/front-awesome/tree/master/mockjs

mock官方地址: http://mockjs.com/

总结 :

在前端开发中,学会使用一些工具,能极大的提高开发效率 , 减少重复劳动 ,意义重大。

作者:fozero

声明:原创文章,转载请注明出处,谢谢!http://www.cnblogs.com/fozero/p/8083331.html

标签:mock

Mock拦截请求URL返回模板数据的更多相关文章

  1. asp.net core 使用中间件拦截请求和返回数据,并对数据进行加密解密。

    原文:asp.net core 使用中间件拦截请求和返回数据,并对数据进行加密解密. GitHub demo https://github.com/zhanglilong23/Asp.NetCore. ...

  2. jquery的ajax异步请求接收返回json数据

    http://www.jb51.net/article/51122.htm jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发 ...

  3. Query通过Ajax向PHP服务端发送请求并返回JSON数据

    Query通过Ajax向PHP服务端发送请求并返回JSON数据 服务端PHP读取MYSQL数据,并转换成JSON数据,传递给前端Javascript,并操作JSON数据.本文将通过实例演示了jQuer ...

  4. http statusCode(状态码)请求URL返回状态值的含义

    http statusCode(状态码)请求URL返回状态值的含义 请求URL浏览器返回状态码的含义(http statusCode): 201-206都表示服务器成功处理了请求的状态代码,说明网页可 ...

  5. springboot拦截json后缀的请求,返回json数据

    需求:请求list.json返回以下数据 { "jsonResult": { "code": 200, "message": "查 ...

  6. jQuery通过Ajax向PHP服务端发送请求并返回JSON数据

    SON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成.JSON在前后台交互的过程中发挥着相当出色的作用.请接着往下看教 ...

  7. MOOC(2)-Django开发get、post请求,返回json数据

    1.对get请求直接返回参数 如果请求多个参数,也只能返回一个参数,这里只返回了username参数 如果想要返回多个参数值,可以返回json格式数据 2.对get请求返回json数据 # views ...

  8. 【C#】WebService接受跨域请求及返回json数据

    问题概述 通过Web Service发布服务供客户端调用是一种非常简单.方便.快速的手段,并且服务发布后会有一个服务说明页面,直观明了,如图: 一般情况下,在web页面中的JavaScript中调用W ...

  9. 请求Url返回数据较大,使结果分页获取

    首先创建了一个单元测试,如下项目视图: 分页结果映射类PageResult的编写: using System; using System.Collections.Generic; using Syst ...

随机推荐

  1. Solr管理界面详解

  2. 递归回溯 UVa140 Bandwidth宽带

    本题题意:寻找一个排列,在此排序中,带宽的长度最小(带宽是指:任意一点v与其距离最远的且与v有边相连的顶点与v的距离的最大值),若有多个,按照字典序输出最小的哪一个. 解题思路: 方法一:由于题目说结 ...

  3. gtk+3.0的环境配置及基于gtk+3.0的python简单样例

    /*********************************************************************  * Author  : Samson  * Date   ...

  4. 单源最短路径 dijkstra算法实现

    本文记录一下dijkstra算法的实现,图用邻接矩阵表示,假设图为无向图.而且连通,有向图,不连通图的做法相似. 算法简述: 首先确定"单源"的源.假设是第0个顶点. 维护三个数组 ...

  5. Javascript实现简单的下拉二级菜单

    在线演示;http://jsfiddle.net/Web_Code/ThhbG/embedded/result/ <span style="font-size:14px;"& ...

  6. Delphi语言怎样对自己定义类进行持久化保存及恢复 (性能远比json/xml高)

    Delphi的RTL自身就带有一套非常好的资源持久化保存(IDE设计窗口时,保存为DFM格式及编译到EXE里面的资源文件)及恢复机制(EXE启动时对窗口资源的载入),那么应不是必需再额外用xml/js ...

  7. 二.java下使用RabbitMQ实现hello world

    上一篇文章介绍了windows环境下的安装和配置rabbitMQ,具体戳这边,一.windows环境下rabbit的的安装和配置. 现在我们可以着手编写hello world程序了,一窥RabbitM ...

  8. 自学Python之路

    自学Python之路[第一回]:初识Python    1.1 自学Python1.1-简介    1.2 自学Python1.2-环境的搭建:Pycharm及python安装详细教程    1.3  ...

  9. 基于 HTML5 WebGL 的 3D 服务器与客户端的通信

    这个例子的初衷是模拟服务器与客户端的通信,我把整个需求简化变成了今天的这个例子.3D 机房方面的模拟一般都是需要鹰眼来辅助的,这样找产品以及整个空间的概括会比较明确,在这个例子中我也加了,这篇文章就算 ...

  10. 【CSS3】动画

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...