Mock 语法讲解

liam
• 阅读 239

Mock 是生成随机数据,拦截 Ajax 请求的 JavaScript 库。

本文来介绍下 Mock 的常用语法。

模拟数据

生成随机数据

Mock.Random.boolean()

生成一个随机的布尔值。例如:

返回值为 truefalse

Mock.Random.integer(min, max)

生成一个随机的整数,可以指定范围。例如:

返回值为 010 之间的整数。

Mock.Random.float(min, max, dmin, dmax)

生成一个随机的浮点数,可以指定范围和精度。例如:

返回值为 0.00100.00000 之间的浮点数,精度为 25 位小数。

Mock.Random.string(length)

生成一个随机的字符串,可以指定长度。例如:

返回值为长度为 10 的随机字符串。

Mock.Random.date()

生成一个随机的日期。例如:

返回值为随机日期的字符串表示,例如 "1977-07-03"

Mock.Random.time()

生成一个随机的时间。例如:

返回值为随机时间的字符串表示,例如 "05:38:02"

Mock.Random.datetime()

生成一个随机的日期时间。例如:

返回值为随机日期时间的字符串表示,例如 "2007-06-29T22:03:06.140Z"

Mock.Random.image(size, background, foreground, format, text)

生成一个随机的图片,可以指定大小、背景色、前景色、格式和文字。例如:

返回值为图片的 Base64 编码字符串。

生成数据模板指定的数据

Mock.mock(template) 根据数据模板生成模拟数据。数据模版可以生成复杂的数据结构。

数据模版的语法如下:

  • 属性名和属性值之间用 : 分隔。
  • 属性与属性之间用 , 分隔。
  • 属性值是字符串类型,可以使用 @ 来表示占位符。
  • 属性值是对象类型,可以使用 name|rule 来表示生成规则。

示例:

const Mock = require('mockjs')

const data = Mock.mock({
  'list|1-10': [{
    'id|+1': 1, // 从 1 开始,每次加 1
    'name': '@cname', // 随机中文名字
    'age|18-60': 1, // 18 到 60 岁之间的整数
    'gender|1': ['男', '女'], // 男或女
    'email': '@email' // 随机电子邮件地址
  }]
})

console.log(data)

输出:

{
  "list": [
    {
      "id": 1,
      "name": "林志玲",
      "age": 32,
      "gender": "女",
      "email": "kbsc@pmpuaaq.pk"
    },
    {
      "id": 2,
      "name": "周杰伦",
      "age": 55,
      "gender": "男",
      "email": "whq@zjfwq.uz"
    },
    ...
  ]
}

模拟接口

  • Mock.mock(url, template) 根据接口地址和数据模板模拟接口请求。
  • Mock.mock(method, url, template) 根据请求方法、接口地址和数据模板模拟接口请求。

以上是 Mock 中常用的语法,更多语法请查阅官方文档。想进阶成为一位 Mock 高手?Apifox 是一个强大的接口文档管理工具,用 Apifox 可以让 Mock 变得更容易。Apifox 语法完全兼容 Mock, 并扩展了一些 Mock 没有的语法(如国内手机号 @phone)。小伙伴们可以去体验下。

知识扩展:

更多 Mock 相关知识可点击下方链接查看。

点赞
收藏
评论区
推荐文章
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
MaxSky MaxSky
3年前
PHP 微信公众号消息加解密
公众号配置根据提示设置即可:【图中信息均为无意义数据,仅供参考。注意服务器地址需可接收GET/POST两种请求】AESKey直接点一下随机生成即可,Token可以生成一个UUID再把UUID进行MD5一次即可。接收关注事件消息示例请求参数校验这一步根据项目情况,可供参考:(Lumen框架)php$valida
分布式id如何生成
1.UUID生成通过网卡、时间、随机数来保证生成的唯一的字符串。优点:(1)本地生成,生成简单(2)速度快(3)高可用;缺点:(1)无序,如果存入mysq,影响B的操作性能,因为B树是需要排序的;(2)占用空间较大(36个
Wesley13 Wesley13
2年前
Java Random类、ThreadLocalRandom类
Random和ThreadLocalRandom类均用于生成伪随机数。Random的构造函数:Random()   默认以系统当前时间为种子,相当于Random(System.currentTimeMillis())Random(long seed)常用方法:nextXxx()  生成对应类型的伪随机数。示例:Rando
Wesley13 Wesley13
2年前
MongoDB的数据类型
一.MongoDB之丰富多彩的数据类型世界首先我们要先了解一下MongoDB中有什么样的数据类型:Object ID:Documents自生成的\_idString:字符串,必须是utf8Boolean:布尔值,true或者false(这里有坑哦~在我们大Python中TrueFalse首字母大写)Integer
Wesley13 Wesley13
2年前
oracle随机获取数据
以前从一个表中随机获取数据的时候,都是先把数据读取到来,然后再在程序中来随机抽取一部分数据,今天告诉大家一种使用SQL语句的方法来随机获取一部分数据SQLServer: 随机获取 10 条数据SELECT TOP 10  FROM 表名 ORDER BY NEWID()ORACLE: 随机获取 
Stella981 Stella981
2年前
SparkSql学习1 —— 借助SQlite数据库分析2000万数据
总所周知,Spark在内存计算领域非常强势,是未来计算的方向。Spark支持类Sql的语法,方便我们对DataFrame的数据进行统计操作。但是,作为初学者,我们今天暂且不讨论Spark的用法。我给自己提出了一个有意思的思维游戏:Java里面的随机数算法真的是随机的吗?好,思路如下:1\.取样,利用Java代码随机生成2000万条01
Wesley13 Wesley13
2年前
#随机数#生成指定范围的随机数
!illustration(https://static.oschina.net/uploads/img/201611/27002454_Ta76.jpg)捡起丢下一个多月的Java,重新复习书本上的东西,来到随机数这一部分:问题:生成指定范围的随机数,比如生成\10,20)区间内的随机整数、生成\0,50\区间内的随机整数。Java
Wesley13 Wesley13
2年前
MySQL企业版之数据脱敏功能
利用企业级特性给敏感数据打码。1\.插件安装2\.数据打码插件应用2.1隐藏重要数据2.2生成随机数据并打码2.3基于字典生成随机值2.4其他要注意的地方3\.总结4\.延伸阅读MySQL企业版从8.0.13开始,新增一个插件叫做DataMaskingandDeIdentification,我将其简
京东云开发者 京东云开发者
7个月前
分布式系统的主键生成方案对比 | 京东云技术团队
UUID​UUID(通用唯一识别码)是由32个十六进制数组成的无序字符串,通过一定的算法计算出来。为了保证其唯一性,UUID规范定义了包括网卡MAC地址、时间戳、名字空间(Namespace)、随机或伪随机数、时序等元素,以及从这些元素生成UUID的算法。