背景 :

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

导致开发效率低 ,速度慢 ,为了解决这一问题 ,通过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. day1 python基础知识

    一:python发展 python2.6与python3.0区别: 源码不标准,混乱,重复代码过多 二:python所属类型 (1)编译型:一次性将程序全部编译成二进制 优点:运行速度快 缺点:不能跨 ...

  2. git上传本地文件到gitlab

    The repository for this project is empty If you already have files you can push them using command l ...

  3. 自己动手写http服务器——主程序(三)

    功能:目前只支持对资源的访问. 使用的模型:多线程加epoll,与传统的一个连接请求一个线程处理不同的是,这个模型只为那些需要服务的连接请求调用线程进行处理, 整个模型的大致流程 创建一个线程持对象, ...

  4. struts2捕获action类异常

    首先是STRUTS.XML的配置.重点在于配置文件: <!-- struts2捕获action类异常 -->         <global-results> <resu ...

  5. 为 NativeScript 项目添加 iOS / Android 平台 API 的智能感知

    使用 NativeScript ,我们可以很容易的调用平台的原生 API,在开发过程中,我们可以添加这些 API 的 d.ts 文件来提供智能感知,帮助我们更方便的构建媲美原生的 APP. 首先通过 ...

  6. nginx+redis实现session的共享

    上一篇我们介绍了nginx实现的负载均衡和动静分离,可看这边. 我们在文章的末尾说到,负载均衡需要面临的一个问题是内存数据的同步.例如:我有A,B两台服务器做了负载均衡,当我在A服务器上执行了登录并且 ...

  7. MPSOC之4——petalinux提取源码

    petalinux使用太不方便,捆绑的太死板,也不通用,还不如直接用编译器来的简单高效. 本文说明从petalinux中提取出源代码的过程,前提是已经petalinux-build完成. 1. ubo ...

  8. Pseudo-devices On GNU/Linux

    先分享一则有意思Q&A,来自The FreeBSD Funnies 17.4 . Where does data written to* /dev/null* go? ​ It goes in ...

  9. redis的set类型

    1.简单描述 redis的set类型是string类型数值的无序集合.set元素最大可以包含2的32次方减1个元素.由于set类型是通过hash table实现(旧版本是这样,新版本不确定是不是改用了 ...

  10. c#值类型与引用类型区别

    值类型对象的两种表示方式:未装箱和已装箱,引用类型总是处于已装箱 值类型从System.ValueType派生.该类型提供了与System.Object相同方法,但System.ValueType重写 ...