【mock】数据模板定义规范DTD 数据占位符定义规范DPD

2.2.4、数据模板定义规范DTD

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

属性名 和 生成规则 之间用竖线 | 分隔。 生成规则 是可选的。 生成规则 有 7 种格式:

name|min-max: value
name|count: value
name|min-max.dmin-dmax: value
name|min-max.dcount: value
name|count.dmin-dmax: value
name|count.dcount: value
name|+step: value id

生成规则的含义需要依赖属性值的类型才能确定。 属性值 中可以含有 @占位符。 属性值 还指定了最终值的初始值和类型

2.2.4.1属性值是字符串

(1)‘name|count’: string 通过重复 string 生成一个字符串,重复次数等于 count

// 使用 Mock 
let Mock = require(mockjs) 
let data = Mock.mock({
          
    
list|5: [{
          
    
id: 1, 
name:测试, 
phone|11:1 
}] 
}) 
// 输出结果 
console.log(JSON.stringify(data,null,2))

(2)‘name|min-max’: string 通过重复 string 生成一个字符串,重复次数大于等于 min,小于等于 max

// 使用 Mock 
let Mock = require(mockjs) 
let data = Mock.mock({
          
    
list|5: [{
          
    
id: 1, 
name|2‐4:测试, 
phone|11:1 
}] 
}) 
// 输出结果 
console.log(JSON.stringify(data,null,2))

2.2.4.2 属性值是number

(1)‘name|+1’: number 属性值自动加 1,初始值为 number。 (2)‘name|min-max’: number 生成一个大于等于 min、小于等于 max 的整数,属性值 number 只是用来确定类型 (3)‘name|min-max.dcount’: value 生成一个浮点数,整数部分大于等于 min、小 于等于 max,小数部分为dcount位 (4)‘name|min-max.dmin-dmax’: number 生成一个浮点数,整数部分大于等于 min、小于等于 max,小数部分保留 dmin 到 dmax 位。

2.2.4.3 属性值是布尔

(1)‘name|1’: boolean 随机生成一个布尔值,值为 true 的概率是 1/2,值为 false 的概率同样是 1/2 (2)‘name|min-max’: value 随机生成一个布尔值,值为 value 的概率是 min / (min + max)

2.2.4.4 属性值是Object

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

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

2.4.4.5 属性值是数组

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

2.2.5、数据占位符定义规范DPD

2.2.5.1 基本方法

可以生成随机的基本数据类型 string 字符串 integer 整数 date 日期 2.2.5.1 图像方法 image 随机生成图片地址

2.2.5.1 文本方法

@title: 标题 @cword(100) :文本内容 参数为字数

2.2.5.1 名称方法

cname :中文名称 cfirst:中文姓氏 Last:英文姓氏

2.2.5.1 网络方法

可以生成url ip email等网络相关信息

2.2.5.1 地址方法 @region 区域 @county 省市县 2.2.6、Crud数据模拟 https://www.jianshu.com/p/7674c285a0d8

import Mock from mockjs // 引入mock
var dataList = []
for (var i = 0; i < 15; i++) {
          
   
  dataList.push(Mock.mock({
          
   
    id: @increment,
    name: @cname,
    phone: /^1[0-9]{10}$/,
    email: @email,
    address: @county(true),
    createTime: @date("yyyy-MM-dd")
  }))
}

function pagination(index, size, list) {
          
   
  console.log(list);
  console.log(index, size);
  return list.slice((index-1)*size, index*size)
}
// 获取用户列表
Mock.mock(new RegExp(/user/list), post, (opts) => {
          
   
  var list =dataList;
  console.log(opts.body)

  var index = JSON.parse(opts.body).page;
  var size = 10;
  var total = list.length
  list = pagination(index, size, list)
  return {
          
   
    total: total,
    data: list
  }
})
经验分享 程序员 微信小程序 职场和发展