Mock.js篇:数据模板定义规范DTD

Mock.js 的语法规范包括两部分:
(1)数据模板定义规范(Data Template Definition,DTD);
(2)数据占位符定义规范(Data Placeholder Definition,DPD)。

数据模板中的每个属性由三部分构成:属性名、生成规则、属性值。

 
  1. // 属性名   name

  2. // 生成规则 rule

  3. // 属性值   value

  4. 'name|rule': value

属性名和生成规则之间用竖线|分隔。生成规则是可选的。生成规则有7种格式:
(1)'name|min-max': value
(2)'name|count': value
(3)'name|min-max.dmin-dmax': value
(4)'name|min-max.dcount': value
(5)'name|count.dmin-dmax': value
(6)'name|count.dcount': value
(7)'name|+step': value
生成规则的含义需要依赖属性值的类型才能确定。属性值中可以含有@占位符。属性值还指定了最终值的初始值和类型。

1、属性值是字符串

(1)'name|count':string

通过重复string生成一个字符串,重复次数等于count。

 
  1. // 使用 Mock

  2. let Mock = require('mockjs')

  3. let data = Mock.mock({

  4. 'list|5': [{

  5. 'id': 1,

  6. 'name':'测试',

  7. 'phone|11':'1' //字符串重复生成

  8. }]

  9. })

  10. // 输出结果

  11. console.log(JSON.stringify(data,null,2))

(2)'name|min-max':string

通过重复生成一个字符串,重复次数大约等于min,小于等于max。

 
  1. // 使用 Mock

  2. let Mock = require('mockjs')

  3. let data = Mock.mock({

  4. 'list|5': [{

  5. 'id': 1,

  6. 'name|2-4':'测试',//'name|min-max': string写法

  7. 'phone|11':'1'

  8. }]

  9. })

  10. // 输出结果

  11. console.log(JSON.stringify(data,null,2))

2、属性值是数字number

(1)'name|+1': number
属性值自动加 1,初始值为 number。

 
  1. // 使用 Mock

  2. let Mock = require('mockjs')

  3. let data = Mock.mock({

  4. 'list|5': [{

  5. 'id|+1': 1,//属性值自动加1

  6. 'name|2-3':'测试',

  7. 'phone|11':'1'

  8. }]

  9. })

  10. // 输出结果

  11. console.log(JSON.stringify(data,null,2))

(2)'name|min-max': number
生成一个大于等于min、小于等于max的整数,属性值number只是用来确定类型。

 
  1. // 使用 Mock

  2. let Mock = require('mockjs')

  3. let data = Mock.mock({

  4. 'list|5': [{

  5. 'id|+1': 1,

  6. 'name|2-3':'测试',

  7. 'phone|11':'1',

  8. 'point|122-500':0 //数值生成一个范围

  9. }]

  10. })

  11. // 输出结果

  12. console.log(JSON.stringify(data,null,2))

(3)'name|min-max.dcount': value 生成一个浮点数,整数部分大于等于 min、小于等于max,小数部分为dcount位

 
  1. // 使用 Mock

  2. let Mock = require('mockjs')

  3. let data = Mock.mock({

  4. 'list|5': [{

  5. 'id|+1': 1,

  6. 'name|2-3':'测试',

  7. 'phone|11':'1',

  8. 'point|122-500':0,

  9. 'money|3000-8000.2':0//生成一个范围,且点.后面2表示2位小数

  10. }]

  11. })

  12. // 输出结果

  13. console.log(JSON.stringify(data,null,2))

 (4)'name|min-max.dmin-dmax': number
生成一个浮点数,整数部分大于等于min、小于等于 max,小数部分保留dmin到dmax位。

 
  1. // 使用 Mock

  2. let Mock = require('mockjs')

  3. let data = Mock.mock({

  4. 'list|5': [{

  5. 'id|+1': 1,

  6. 'name|2-3':'测试',

  7. 'phone|11':'1',

  8. 'point|122-500':0,

  9. 'money|3000-8000.2':0,

  10. 'money2|1000-5000.2-4':0,//整数在1000-5000范围内,小数在2位到4位之间

  11. }]

  12. })

  13. // 输出结果

  14. console.log(JSON.stringify(data,null,2))

3、属性值是布尔

(1)'name|1': boolean
随机生成一个布尔值,值为true的概率是 1/2,值为false的概率同样是1/2

 
  1. // 使用 Mock

  2. let Mock = require('mockjs')

  3. let data = Mock.mock({

  4. 'list|5': [{

  5. 'id|+1': 1,

  6. 'name|2-3':'测试',

  7. 'phone|11':'1',

  8. 'point|122-500':0,

  9. 'money|3000-8000.2':0,

  10. 'status|1':true//生成一个布尔类型

  11. }]

  12. })

  13. // 输出结果

  14. console.log(JSON.stringify(data,null,2))

(2)'name|min-max': value
随机生成一个布尔值,值为valu 的概率是 min/(min + max)

 
  1. // 使用 Mock

  2. let Mock = require('mockjs')

  3. let data = Mock.mock({

  4. 'list|5': [{

  5. 'id|+1': 1,

  6. 'name|2-3':'测试',

  7. 'phone|11':'1',

  8. 'point|122-500':0,

  9. 'money|3000-8000.2':0,

  10. 'status|1':true,

  11. 'default|1-3':true//随机生成一个布尔值

  12. }]

  13. })

  14. // 输出结果

  15. console.log(JSON.stringify(data,null,2))

4、属性值是Object

(1)'name|count': object
从属性值object中随机选取count个属性。

 
  1. // 使用 Mock

  2. let Mock = require('mockjs')

  3. let data = Mock.mock({

  4. 'list|5': [{

  5. 'id|+1': 1,

  6. 'name|2-3':'测试',

  7. 'phone|11':'1',

  8. 'point|122-500':0,

  9. 'money|3000-8000.2':0,

  10. 'status|1':true,

  11. 'default|1-3':true,

  12. 'detail|2':{'id':1,'date':'2005-01-01','content':'记录'}

  13. }]

  14. })

  15. // 输出结果

  16. console.log(JSON.stringify(data,null,2))

(2)'name|min-max': object
从属性值object中随机选取 min到 max个属性

 
  1. // 使用 Mock

  2. let Mock = require('mockjs')

  3. let data = Mock.mock({

  4. 'list|5': [{

  5. 'id|+1': 1,

  6. 'name|2-3':'测试',

  7. 'phone|11':'1',

  8. 'point|122-500':0,

  9. 'money|3000-8000.2':0,

  10. 'status|1':true,

  11. 'default|1-3':true,

  12. 'detail|2-3':{'id':1,'date':'2005-01-01','content':'记录'}

  13. }]

  14. })

  15. // 输出结果

  16. console.log(JSON.stringify(data,null,2))

5、属性值是数组

(1)'name|count': array
通过重复属性值 array 生成一个新数组,重复次数为 count
(2)'name|min-max': array
通过重复属性值 array 生成一个新数组,重复次数大于等于 min,小于等于 max。

 
  1. // 使用 Mock

  2. let Mock = require('mockjs')

  3. let data = Mock.mock({

  4. 'list|5-10': [{

  5. 'id|+1': 1,

  6. 'name|2-3':'测试',

  7. 'phone|11':'1',

  8. 'point|122-500':0,

  9. 'money|3000-8000.2':0,

  10. 'status|1':true,

  11. 'default|1-3':true,

  12. 'detail|2-3':{'id':1,'date':'2005-01-01','content':'记录'}

  13. }]

  14. })

  15. // 输出结果

  16. console.log(JSON.stringify(data,null,2))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值