使用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浮点数保留两位小数点示例代码(四舍五入)
Dec 26 Javascript
图解JavaScript中的this关键字
May 28 Javascript
详解JavaScript基于面向对象之创建对象(1)
Dec 10 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
Dec 17 Javascript
jQuery插件ajaxFileUpload使用实例解析
Oct 19 Javascript
Javascript中document.referrer隐藏来源的方法
Jan 16 Javascript
详解js的作用域、预解析机制
Feb 05 Javascript
Vue slot用法(小结)
Oct 22 Javascript
微信小程序实现轨迹回放的示例代码
Dec 13 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
Jan 16 Javascript
原生js实现日历效果
Mar 02 Javascript
js+canvas绘制图形验证码
Sep 21 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中apc缓存使用示例
2013/12/25 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
2014/06/25 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
如何判断图片地址是否失效
2007/02/02 Javascript
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
Eclipse去除js(JavaScript)验证错误
2014/02/11 Javascript
深入理解JavaScript系列(43):设计模式之状态模式详解
2015/03/04 Javascript
javascript实现网页端解压并查看zip文件
2015/12/15 Javascript
浅析AngularJS Filter用法
2015/12/28 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
2016/09/17 Javascript
浅谈Javascript中的函数、this以及原型
2016/10/09 Javascript
使用Angular.js开发的注意事项
2016/10/19 Javascript
Javascript中Promise的四种常用方法总结
2017/07/14 Javascript
JS实现字符串中去除指定子字符串方法分析
2018/05/17 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
微信小程序实现左滑修改、删除功能
2020/10/19 Javascript
浅谈es6中的元编程
2020/12/01 Javascript
深入理解Javascript中的this关键字
2015/03/27 Python
Python保存MongoDB上的文件到本地的方法
2016/03/16 Python
使用Python对Csv文件操作实例代码
2017/05/12 Python
python解析含有重复key的json方法
2019/01/22 Python
解析PyCharm Python运行权限问题
2020/01/08 Python
python数据库编程 ODBC方式实现通讯录
2020/03/27 Python
重写django的model下的objects模型管理器方式
2020/05/15 Python
python实现代码审查自动回复消息
2021/02/01 Python
HTML5 canvas基本绘图之绘制矩形
2016/06/27 HTML / CSS
英国最大的户外商店:Go Outdoors
2019/04/17 全球购物
《悯农》教学反思
2014/04/28 职场文书
财会专业毕业生自荐信
2014/07/09 职场文书
机关作风建设整改方案
2014/10/27 职场文书
大学生年度个人总结
2015/02/15 职场文书
社区低保工作总结2015
2015/07/23 职场文书
读《人生的智慧》有感:闲暇是人生的精华
2019/12/25 职场文书
Java使用Unsafe类的示例详解
2021/09/25 Java/Android
Python的property属性详细讲解
2022/04/11 Python