使用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 相关文章推荐
JQuery实现自定义对话框的代码
Jun 15 Javascript
js 页面执行时间计算代码
Mar 04 Javascript
Jquery下判断Id是否存在的代码
Jan 06 Javascript
jQuery对表单的操作代码集合
Apr 06 Javascript
jQuery旋转插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
Jan 16 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
Dec 29 Javascript
用js的document.write输出的广告无阻塞加载的方法
Jun 05 Javascript
js简单网速测试方法完整实例
Dec 15 Javascript
详解在vue-cli项目中使用mockjs(请求数据删除数据)
Oct 23 Javascript
再谈Angular4 脏值检测(性能优化)
Apr 23 Javascript
从零开始搭建webpack+react开发环境的详细步骤
May 18 Javascript
socket在egg中的使用实例代码详解
May 30 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
重置版战役片段
2020/04/09 魔兽争霸
php下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
php URL跳转代码 减少外链
2011/06/25 PHP
UCenter 批量添加用户的php代码
2012/07/17 PHP
PHP+jquery+ajax实现即时聊天功能实例
2014/12/23 PHP
Laravel中使用阿里云OSS Composer包分享
2015/02/10 PHP
PHP代码实现表单数据验证类
2015/07/28 PHP
php实现图片缩略图的方法
2016/03/29 PHP
thinkphp5框架实现的自定义扩展类操作示例
2019/05/16 PHP
Hutia 的 JS 代码集
2006/10/24 Javascript
js 自定义个性下拉选择框示例
2013/08/20 Javascript
JS:window.onload的使用介绍
2013/11/13 Javascript
jQuery实现动态文字搜索功能
2017/01/05 Javascript
JS实现复选框的全选和批量删除功能
2017/04/05 Javascript
利用express启动一个server服务的方法
2017/09/17 Javascript
详解从零搭建 vue2 vue-router2 webpack3 工程
2017/11/22 Javascript
基于three.js编写的一个项目类示例代码
2018/01/05 Javascript
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
2018/09/15 Javascript
微信小程序适配iphoneX的实现方法
2018/09/18 Javascript
electron制作仿制qq聊天界面的示例代码
2018/11/26 Javascript
python中使用enumerate函数遍历元素实例
2014/06/16 Python
Python用户推荐系统曼哈顿算法实现完整代码
2017/12/01 Python
python验证码识别教程之滑动验证码
2018/06/04 Python
Python3.4 tkinter,PIL图片转换
2018/06/21 Python
python实现俄罗斯方块游戏
2020/03/25 Python
Pandas DataFrame中的tuple元素遍历的实现
2019/10/23 Python
tensorflow 获取checkpoint中的变量列表实例
2020/02/11 Python
python opencv肤色检测的实现示例
2020/12/21 Python
open_basedir restriction in effect. 原因与解决方法
2021/03/14 PHP
副厂长岗位职责
2014/02/02 职场文书
2014年五四青年节演讲比赛方案
2014/04/22 职场文书
学校地质灾害防治方案
2014/06/10 职场文书
爱心助学感谢信
2015/01/21 职场文书
员工工作失职检讨书范文!
2019/07/03 职场文书
Python制作动态字符画的源码
2021/08/04 Python