语法规范
数据模板定义规范DTD
与js定义对象一致,使用竖线分隔生成规则"属性名|生成规则": 属性值
- 若属性值是函数时,无需生成规则,取其返回值作为最终的属性值
- 若属性值是正则时,无需生成规则,根据正则反向生成可以匹配它的字符串
生成规则 | String | Number | Boolean | Object | Array |
---|---|---|---|---|---|
min-max |
随机重复次数,空字符串时是随机字符 | min-max之间的数字 | min是属性值的概率份数,max是!属性值的概率 | 从属性值中随机选取min-max个属性 | 从属性值中随机选取min-max生成新数组 |
count |
固定重复次数,空字符串时是随机字符 | 生成count的值 | 只能是1,布尔值的概率各是二分之一 | 从属性值中随机选取count个属性 | 重复属性值count次生成新数组,count是1时是随机选取一个作为最终值 |
min-max.dmin-dmax |
小数部分不起作用 | 随机浮点数,小数位代表保留小数位数 | 小数部分不起作用 | 小数部分不起作用 | 小数部分不起作用 |
min-max.dcount |
小数部分不起作用 | 随机浮点数,小数位代表保留小数位数 | 小数部分不起作用 | 小数部分不起作用 | 小数部分不起作用 |
count.dmin-dmax |
小数部分不起作用 | 随机浮点数,小数位代表保留小数位数 | 小数部分不起作用 | 小数部分不起作用 | 小数部分不起作用 |
count.dcount |
小数部分不起作用 | 随机浮点数,小数位代表保留小数位数 | 小数部分不起作用 | 小数部分不起作用 | 小数部分不起作用 |
+step |
不起作用 | 与数组结合递增步长 | 不起作用 | 不起作用 | 从属性值中顺序选取1个元素,作为最终值 |
const Mock = require("mockjs");
var goods = Mock.mock({
"list|1-10": [
{
"id|+1": 0,
"price|1-3.3": 0,
"describe|10-20": "",
"show|1": true,
}
]
})
console.log(goods);
// { list: { id: 0, price: 3.304, describe: 'rhN[BVbvwVyDb', show: true } }
数据占位符定义规范DPD
占位符只是在属性值字符串中占个位置,并不出现在最终的属性值中,支持拼接,占位符的格式为:@占位符
或@占位符(...参数])
- 用
@
来标识其后的字符串是占位符,直到空格 - 占位符引用的是
Mock.Random
中的方法 - 通过
Mock.Random.extend()
来扩展自定义占位符 - 占位符也可以引用数据模板中的属性
const Mock = require("mockjs");
var placeholder = Mock.mock("@id");
//上下两种方式是一致的
var randomFun = Mock.Random.id();
console.log(placeholder, randomFun);
//370000197406173100 440000197802200893
Mock.Random.extend({ //使用Random.extend()方法按照以下格式扩展占位符
custom(...args){ //可自定义参数
var arr = ["自定义1", "自定义2", "自定义3"];
return this.pick(arr);
}
});
console.log(Mock.mock("@custom"));
//自定义3
常用占位符
更多实例从这里可以查看
占位符 | 描述 |
---|---|
@id |
随机id |
@name |
随机姓名,使用c开头可获得中文名 |
@email |
随机邮箱 |
@image |
随机图片htp地址,可接收大小,背景颜色,文字颜色,图片上文字参数,16进制颜色 |
@dataImage |
随机图片htp地址,可接收大小,文字参数,颜色随机 |
@color |
随机16进制颜色,其他也有@hex 、@rgb 、@rgba 、@hsl |
@date |
随机日常标准日期,可接收格式化参数 |
@time |
随机24小时制时间,可接收格式化参数 |
@datetime |
随机日常标准时间日期,可接收格式化参数 |
@now |
当前标准时间日期 |
@title |
随机标题字符串,使用c开头可获得中文标题 |
@paragraph |
随机段落字符串,使用c开头可获得中文段落 |
@region |
随机地区 |
@province |
随机省 |
@city |
随机市,可接收参数true 连同省返回 |
@county |
随机县,可接收参数true 连同省市返回 |
@shuffle |
接收数组参数,返回数组的洗牌结果 |
@ip |
随机ip地址 |
Comments NOTHING