使用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中将HTMLCollection/NodeList/伪数组转换成数组的代码
Jul 31 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
Mar 12 Javascript
jQuery在html有效在jsp无效的原因及解决方法
Aug 02 Javascript
js实现单行文本向上滚动效果实例代码
Nov 28 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
Jun 26 Javascript
Bootstrap树形组件jqTree的简单封装
Jan 25 Javascript
漂亮! js实现颜色渐变效果
Aug 12 Javascript
seajs模块之间依赖的加载以及模块的执行
Oct 21 Javascript
推荐三款不错的图片压缩上传插件(webuploader、localResizeIMG4、LUploader)
Apr 21 Javascript
webpack源码之loader机制详解
Apr 06 Javascript
Node使用Nodemailer发送邮件的方法实现
Feb 24 Javascript
vue项目中使用rem,在入口文件添加内容操作
Nov 11 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下关于中英数字混排的字符串分割问题
2010/04/06 PHP
php中判断字符串是否全是中文或含有中文的实现代码
2011/09/16 PHP
php empty()与isset()区别的详细介绍
2013/06/17 PHP
PHP中Session可能会引起并发问题
2015/06/26 PHP
图文详解PHP环境搭建教程
2016/07/16 PHP
php rmdir使用递归函数删除非空目录实例详解
2016/10/20 PHP
php分页查询的简单实现代码
2017/03/14 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
2017/08/11 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
2020/05/15 PHP
精通Javascript系列之数值计算
2011/06/07 Javascript
js写一个弹出层并锁屏效果实现代码
2012/12/07 Javascript
js获取html参数及向swf传递参数应用介绍
2013/02/18 Javascript
Js点击弹出下拉菜单效果实例
2013/08/12 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
2013/09/23 Javascript
js比较日期大小的方法
2015/05/12 Javascript
使用AngularJS来实现HTML页面嵌套的方法
2015/06/17 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
javascript实现查找数组中最大值方法汇总
2016/02/13 Javascript
Angular发布1.5正式版,专注于向Angular 2的过渡
2016/02/18 Javascript
基于Nodejs利用socket.io实现多人聊天室
2017/02/22 NodeJs
Vue infinite update loop的问题解决
2019/04/23 Javascript
ligerUI的ligerDialog关闭刷新的方法
2019/09/27 Javascript
使用Vant完成DatetimePicker 日期的选择器操作
2020/11/12 Javascript
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
Python根据欧拉角求旋转矩阵的实例
2019/01/28 Python
django自带调试服务器的使用详解
2019/08/29 Python
Django实现分页显示效果
2019/10/31 Python
HTML5 Canvas实现文本对齐的方法总结
2016/03/24 HTML / CSS
成人大专自我鉴定范文
2013/10/19 职场文书
学校司机岗位职责
2013/11/14 职场文书
理工类毕业自我鉴定
2014/02/20 职场文书
保密普查工作实施方案
2014/02/25 职场文书
社区优秀志愿者先进事迹
2014/05/09 职场文书
2014年优秀班主任工作总结
2014/12/16 职场文书
建议书格式
2015/02/04 职场文书
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript