使用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 相关文章推荐
在第一个input框内输入内容.textarea自动得到第一个文件框的值的javascript代码
Apr 20 Javascript
ASP.NET jQuery 实例14 在ASP.NET form中校验时间范围
Feb 03 Javascript
js取得url地址参数实例
Feb 22 Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
May 14 Javascript
jquery 实现上下滚动效果示例代码
Aug 09 Javascript
jquery的ajax简单结构示例代码
Feb 17 Javascript
node.js中http模块和url模块的简单介绍
Oct 06 Javascript
JS使用tween.js动画库实现轮播图并且有切换功能
Jul 17 Javascript
深入分析element ScrollBar滚动组件源码
Jan 22 Javascript
解决layui的radio属性或别的属性没显示出来的问题
Sep 26 Javascript
Vue移动端项目实现使用手机预览调试操作
Jul 18 Javascript
js定时器出现第一次延迟的原因及解决方法
Jan 04 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学习之简单计算器实现代码
2011/06/09 PHP
PHP 转义使用详解
2013/07/15 PHP
php实现面包屑导航例子分享
2015/12/19 PHP
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
引用外部js乱码问题分析及解决方案
2013/04/12 Javascript
javascript中onclick(this)用法介绍
2013/04/19 Javascript
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
javascript 面向对象封装与继承
2014/11/27 Javascript
JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
2015/11/26 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
JS简单实现无缝滚动效果实例
2016/08/24 Javascript
Vue.js 和 MVVM 的注意事项
2016/11/07 Javascript
jquery版轮播图效果和extend扩展
2017/07/18 jQuery
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
webpack写jquery插件的环境配置
2017/12/21 jQuery
JS逻辑运算符短路操作实例分析
2018/07/09 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
JS中的算法与数据结构之队列(Queue)实例详解
2019/08/20 Javascript
Python即时网络爬虫项目启动说明详解
2018/02/23 Python
Python3 中把txt数据文件读入到矩阵中的方法
2018/04/27 Python
Python数据抓取爬虫代理防封IP方法
2018/12/23 Python
python批量创建指定名称的文件夹
2019/03/21 Python
详解python数据结构和算法
2019/04/18 Python
完美解决python3.7 pip升级 拒绝访问问题
2019/07/12 Python
video.js支持m3u8格式直播的实现示例
2020/05/20 HTML / CSS
草莓巧克力:Shari’s Berries
2017/02/07 全球购物
英国曼彻斯特宠物用品品牌:Bunty Pet Products
2019/07/27 全球购物
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
广告创意求职信
2014/03/17 职场文书
课外访万家心得体会
2014/09/03 职场文书
公司放假通知怎么写
2015/04/15 职场文书
会议主持词结束语
2015/07/03 职场文书
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python
一篇文章了解正则表达式的替换技巧
2022/02/24 Javascript
SQLServer RANK() 排名函数的使用
2022/03/23 SQL Server