使用Mock.js生成前端测试数据


Posted in Javascript onDecember 13, 2020

Mock.js是一个模拟数据生成器,可以让前端独立于后端进行开发。如果你正在开发一个前端页面,可是后台还没有完成供你调用的Api,并且数据格式已经确定,那么你就可以使用Mock.js模拟相关的接口,生成假数据来查看页面效果。Mock.js的功能:生成随机数据,拦截 Ajax 请求。

参考文档:https://github.com/nuysoft/Mock/wiki/Getting-Started

语法规范:https://github.com/nuysoft/Mock/wiki/Syntax-Specification

安装

npm install mockjs

创建模拟Api,拦截Ajax请求,返回测试数据

//模拟后台
  Mock.mock('http://api.com', {
    "user|5-10": [{
      'name': '@cname',  //中文名称
      'age|1-100': 100,  //100以内随机整数
      'birthday': '@date("yyyy-MM-dd")', //日期
      'city': '@city(true)'  //中国城市
    }]
  });

发送ajax请求

//JQuery方式
  $.ajax({
    url: 'http://api.com',
    dataType: 'json'
  }).done(function(data, status, xhr) {
    console.log(
      JSON.stringify(data, null, 4)
    )
  });
  //原生ajax方式
  function myajax(url) {
      if (window.XMLHttpRequest) {
        ajax = new XMLHttpRequest();
      } else if (window.ActiveXObject) {
        try {
          ajax = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
          try {
            ajax = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (e) {}
        }
      }
      if (!ajax) {
        window.alert("不能创建XMLHttpRequest对象实例.");
        return false;
      }
      ajax.open("GET", url, true);
      ajax.send(null);
      ajax.onreadystatechange = function() {
        if (ajax.readyState == 4 && ajax.status == 200) {
          console.log(ajax.responseText);
        }
      }
    }

  myajax('http://api.com');

查看响应

{
  "user": [
    {
      "name": "锺丽",
      "age": 17,
      "birthday": "1983-11-01",
      "city": "内蒙古自治区 赤峰市"
    },
    {
      "name": "陈艳",
      "age": 25,
      "birthday": "1973-07-10",
      "city": "河南省 驻马店市"
    },
    {
      "name": "冯霞",
      "age": 59,
      "birthday": "2010-10-28",
      "city": "澳门特别行政区 离岛"
    },
    {
      "name": "贾秀英",
      "age": 63,
      "birthday": "1973-01-22",
      "city": "新疆维吾尔自治区 伊犁哈萨克自治州"
    },
    {
      "name": "周勇",
      "age": 34,
      "birthday": "1985-05-21",
      "city": "湖南省 衡阳市"
    }
  ]
}

示例

// 使用 Mock
var Mock = require('mockjs')

/**
 * 
 * 数据模板
 * 属性名|生成规则: 属性值
 */
var data = Mock.mock({
  // 属性 list 的值是一个数组,其中含有 1 到 10 个元素
  'list|1-10': [{
    // 属性 id 是一个自增数,起始值为 1,每次增 1
    'id|+1': 1,
    'name': '@FIRST'
  }]
})

// 输出结果
console.log(JSON.stringify(data, null, 4))

运行结果

{
    "list": [
        {
            "id": 1,
            "name": "Larry"
        },
        {
            "id": 2,
            "name": "Edward"
        },
        {
            "id": 3,
            "name": "Jessica"
        },
        {
            "id": 4,
            "name": "William"
        },
        {
            "id": 5,
            "name": "Christopher"
        },
        {
            "id": 6,
            "name": "Michael"
        },
        {
            "id": 7,
            "name": "Susan"
        },
        {
            "id": 8,
            "name": "Shirley"
        },
        {
            "id": 9,
            "name": "Angela"
        },
        {
            "id": 10,
            "name": "George"
        }
    ]
}

到此这篇关于使用Mock.js生成前端测试数据的文章就介绍到这了,更多相关Mock.js生成测试数据内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
js函数般调用正则
Apr 08 Javascript
jQuery 动画弹出窗体支持多种展现方式
Apr 29 Javascript
基于jQuery的简单的列表导航菜单
Mar 02 Javascript
jQuery :nth-child前有无空格的区别分析
Jul 11 Javascript
js编码之encodeURIComponent使用介绍(asp,php)
Mar 01 Javascript
node.js集成百度UE编辑器
Feb 05 Javascript
JavaScript简单实现弹出拖拽窗口(一)
Jun 17 Javascript
JavaScript使用readAsDataUrl方法预览图片
May 10 Javascript
JavaScript编程设计模式之构造器模式实例分析
Oct 25 Javascript
jquery-ui 进度条功能示例【测试可用】
Jul 25 jQuery
Vue select 绑定动态变量的实例讲解
Oct 22 Javascript
js观察者模式的弹幕案例
Nov 23 Javascript
javascript实现滚轮轮播图片
Dec 13 #Javascript
swiper实现导航滚动效果
Dec 13 #Javascript
swiperjs实现导航与tab页的联动
Dec 13 #Javascript
Vue实现简单购物车功能
Dec 13 #Vue.js
javascript前端实现多视频上传
Dec 13 #Javascript
vue使用element-ui实现表单验证
Dec 13 #Vue.js
vue+element实现动态加载表单
Dec 13 #Vue.js
You might like
PHP API接口必备之输出json格式数据示例代码
2017/06/27 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
asp 的 分词实现代码
2007/05/24 Javascript
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
2010/10/26 Javascript
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
JQuery 中几个类选择器的简单使用介绍
2013/03/14 Javascript
深入理解JS中的变量及作用域、undefined与null
2014/03/04 Javascript
javascript函数特点实例分析
2015/05/14 Javascript
JS实现简单路由器功能的方法
2015/05/27 Javascript
Jquery ajax请求导出Excel表格的实现代码
2016/06/08 Javascript
Bootstrap编写一个兼容主流浏览器的受众门户式风格页面
2016/07/01 Javascript
利用Javascript实现BMI计算器
2016/08/16 Javascript
js实现倒计时及时间对象
2016/11/15 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
2017/02/23 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
mui 打开新窗口的方式总结及注意事项
2017/08/20 Javascript
Angular实现点击按钮控制隐藏和显示功能示例
2017/12/29 Javascript
JS严格模式知识点总结
2018/02/27 Javascript
Mint UI组件库CheckList使用及踩坑总结
2018/12/20 Javascript
jQuery实现的老虎机跑动效果示例
2018/12/29 jQuery
javascript 原型与原型链的理解及应用实例分析
2020/02/10 Javascript
Vue3为什么这么快
2020/09/23 Javascript
详细解析Python中的变量的数据类型
2015/05/13 Python
Python的迭代器和生成器
2015/07/29 Python
Windows下搭建python开发环境详细步骤
2020/07/20 Python
Python实现简单的获取图片爬虫功能示例
2017/07/12 Python
Python 图像对比度增强的几种方法(小结)
2019/09/25 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
python批量生成条形码的示例
2020/10/10 Python
CSS3中的display:grid,网格布局介绍
2019/10/30 HTML / CSS
全球最大最受欢迎的旅游社区:Tripadvisor
2017/11/03 全球购物
重写子类方法时,抛出异常的书写注意事项
2015/10/17 面试题
个人求职信范文
2014/05/24 职场文书
2015初一年级组工作总结
2015/07/24 职场文书
关于Numpy之repeat、tile的用法总结
2021/06/02 Python
OpenCV 图像梯度的实现方法
2021/07/25 Python