使用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 相关文章推荐
JavaScript脚本性能的优化方法
Feb 02 Javascript
广泛收集的jQuery拖放插件集合
Apr 09 Javascript
表单元素的submit()方法和onsubmit事件应用概述
Feb 01 Javascript
让人蛋疼的JavaScript语法特性
Sep 30 Javascript
JavaScript中的类数组对象介绍
Dec 30 Javascript
给before和after伪元素设置js效果的方法
Dec 04 Javascript
详解原生JavaScript实现jQuery中AJAX处理的方法
May 10 Javascript
全面接触神奇的Bootstrap导航条实战篇
Aug 01 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
Dec 21 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
Feb 22 Javascript
Angular PWA使用的Demo示例
Jan 31 Javascript
js实现无缝轮播图效果
Mar 09 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
我的论坛源代码(二)
2006/10/09 PHP
php str_pad() 将字符串填充成指定长度的字符串
2010/02/23 PHP
PHP类中Static方法效率测试代码
2010/10/17 PHP
深入解析php之sphinx
2013/05/15 PHP
thinkphp模板赋值与替换实例简述
2014/11/24 PHP
windows7配置Nginx+php+mysql的详细教程
2016/09/04 PHP
PHP实现的观察者模式实例
2017/06/21 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
2019/05/23 PHP
基于JQuery的类似新浪微博展示信息效果的代码
2012/07/23 Javascript
在Firefox下js select标签点击无法弹出
2014/03/06 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
2015/04/06 Javascript
JS+CSS相对定位实现的下拉菜单
2015/10/06 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
JQuery标签页效果实例详解
2015/12/24 Javascript
javascript设置页面背景色及背景图片的方法
2015/12/29 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
利用原生JS与jQuery实现数字线性变化的动画
2017/02/24 Javascript
JS二叉树的简单实现方法示例
2017/04/05 Javascript
JavaScript实现选中文字提示新浪微博分享效果
2017/06/15 Javascript
关于jquery form表单序列化的注意事项详解
2017/08/01 jQuery
基于Node.js模板引擎教程-jade速学与实战1
2017/09/17 Javascript
Vue.use源码学习小结
2018/06/20 Javascript
从0到1构建vueSSR项目之node以及vue-cli3的配置
2019/03/07 Javascript
layer.alert自定义关闭回调事件的方法
2019/09/27 Javascript
解决layui页面按钮点击无反应,也不报错的问题
2019/09/29 Javascript
python使用代理ip访问网站的实例
2018/05/07 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
2019/10/22 Python
Python网络爬虫信息提取mooc代码实例
2020/03/06 Python
基于FME使用Python过程图解
2020/05/13 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
html5将图片转换成base64的实例代码
2016/09/21 HTML / CSS
电子商务专业求职信
2014/03/08 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
python获取带有返回值的多线程
2022/05/02 Python
PostgreSQL之连接失败的问题及解决
2023/05/08 PostgreSQL