使用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里模拟sleep(两种实现方式)
Jan 25 Javascript
jQuery层次选择器选择元素使用介绍
Apr 18 Javascript
js获得地址栏?问号后参数的方法
Aug 08 Javascript
jquery获得option的值和对option进行操作
Dec 13 Javascript
JavaScript中的6种运算符总结
Oct 16 Javascript
js实现无限级树形导航列表效果代码
Sep 23 Javascript
JavaScript操作HTML元素和样式的方法详解
Oct 21 Javascript
JS构造函数与原型prototype的区别介绍
Jul 04 Javascript
JS实现页面数据无限加载
Sep 13 Javascript
利用Angular.js编写公共提示模块的方法教程
May 28 Javascript
vue使用pdfjs显示PDF可复制的实现方法
Dec 14 Javascript
如何在Angular8.0下使用ngx-translate进行国际化配置
Jul 24 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
jQuery+PHP+ajax实现微博加载更多内容列表功能
2014/06/27 PHP
如何实现JS函数的重载
2006/09/22 Javascript
javascript parseInt() 函数的进制转换注意细节
2013/01/08 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
JS组件Form表单验证神器BootstrapValidator
2016/01/26 Javascript
JS实现“隐藏与显示”功能(多种方法)
2016/11/24 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
2020/04/18 Javascript
微信小程序图片横向左右滑动案例
2017/05/19 Javascript
详谈innerHTML innerText的使用和区别
2017/08/18 Javascript
vue axios 二次封装的示例代码
2017/12/08 Javascript
使用Vuex实现一个笔记应用的方法
2018/03/13 Javascript
详解vue 路由跳转四种方式 (带参数)
2019/04/28 Javascript
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
使用Python保存网页上的图片或者保存页面为截图
2016/03/05 Python
Python中基础的socket编程实战攻略
2016/06/01 Python
Python比较配置文件的方法实例详解
2019/06/06 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
2020/02/13 Python
Python中logging日志库实例详解
2020/02/19 Python
Python Pandas 对列/行进行选择,增加,删除操作
2020/05/17 Python
简述python Scrapy框架
2020/08/17 Python
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
新加坡最受追捧的体验平台:Hapz
2018/01/01 全球购物
西海岸男士和男童服装:Johnnie-O
2018/03/15 全球购物
西班牙在线药店:DosFarma
2020/03/28 全球购物
西班牙Polo衫品牌:Polo Club
2020/08/09 全球购物
小松树教学反思
2014/02/11 职场文书
2014年学校卫生工作总结
2014/11/20 职场文书
2014年音乐教师工作总结
2014/12/03 职场文书
考研复习计划
2015/01/19 职场文书
党支部书记岗位职责
2015/02/15 职场文书
乒乓球比赛通知
2015/04/27 职场文书
汉字听写大会观后感
2015/06/12 职场文书
养成教育工作总结
2015/08/13 职场文书
2016年小学优秀班主任事迹材料
2016/02/29 职场文书
抖音短视频(douyin)去水印工具的实现代码
2021/03/30 Javascript
Java结构型设计模式之组合模式详解
2022/09/23 Java/Android