使用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 UI皮肤定制
Jul 27 Javascript
jquery加载页面的方法(页面加载完成就执行)
Jun 21 Javascript
jQuery中:empty选择器用法实例
Dec 30 Javascript
jQuery EasyUI提交表单验证
Jul 19 Javascript
JavaScript中的ajax功能的概念和示例详解
Oct 17 Javascript
easyui导出excel无法弹出下载框的快速解决方法
Nov 10 Javascript
javascript实现复选框全选或反选
Feb 04 Javascript
JavaScript登录验证基础教程
Nov 01 Javascript
JavaScript函数、闭包、原型、面向对象学习笔记
Sep 06 Javascript
微信JSSDK实现打开摄像头拍照再将相片保存到服务器
Nov 15 Javascript
微信小程序中插入激励视频广告并获取收益(实例代码)
Dec 06 Javascript
详解vue3中组件的非兼容变更
Mar 03 Vue.js
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
dedecms中显示数字验证码的修改方法
2007/03/21 PHP
一个经典的PHP验证码类分享
2014/11/18 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
Add a Table to a Word Document
2007/06/15 Javascript
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
js截取字符串的两种方法及区别详解
2013/11/05 Javascript
jQuery实现瀑布流布局
2014/12/12 Javascript
JavaScript中关联原型链属性特性
2016/02/13 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
2016/05/13 Javascript
有关jQuery中parent()和siblings()的小问题
2016/06/01 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
Angular的自定义指令以及实例
2016/12/26 Javascript
Bootstrap3 图片(响应式图片&图片形状)
2017/01/04 Javascript
weex里Vuex state使用storage持久化详解
2017/09/09 Javascript
原生JS实现瀑布流插件
2018/02/06 Javascript
JavaScript事件发布/订阅模式原理与用法分析
2018/08/21 Javascript
JavaScript惰性求值的一种实现方法示例
2019/01/11 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
2020/09/04 Javascript
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
python导入时小括号大作用
2017/01/10 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
利用python提取wav文件的mfcc方法
2019/01/09 Python
打包python 加icon 去掉cmd黑窗口方法
2019/06/24 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
Django实现从数据库中获取到的数据转换为dict
2020/03/27 Python
python实现测试工具(一)——命令行发送get请求
2020/10/19 Python
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
size?瑞典:英国伦敦的球鞋精品店
2018/03/01 全球购物
英国绿色商店:Natural Collection
2019/05/03 全球购物
七匹狼男装广告词
2014/03/21 职场文书
励志演讲稿300字
2014/08/21 职场文书
人民检察院起诉书
2015/05/20 职场文书
2016年村干部公开承诺书(公开承诺事项)
2016/03/25 职场文书
python scrapy简单模拟登录的代码分析
2021/07/21 Python
JavaScript声明变量和数据类型的转换
2022/04/12 Javascript
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
2022/05/25 SQL Server