Mock.js——数据模板定义

1. 安装

npm install mockjs --save-dev  //安装开发依赖

2. 数据模板定义规则

Mock.mock({...})
String:
'string|num1-num2':str     
    eg:'name|1-5':'*'   
    //从num1和num2之间随机取值a,复制a个str并连接成一个字符串
'string|count':str         
    eg:'name|3':'*'
    //一个由count个str拼成的字符串,count是定值
Number:
'number|num1-num2':num      
    eg:'age|10-20':100
    //生成一个介于num1和num2之间的数字,num是初始值
'number|+1':num             
    eg:'age|+1':100
    //num为初始值,每次被调用num都会+1。前提是在生成list时
    Mock.mock({
        'obj|3-5':[{
          'age|+1':2
        }]
    })
'number|num1-num2.dnum1-dnum2':num
    eg:'age|1-100.1-10':1
    //生成一个整数部分是num1和num2之间的数字,小数部分的长度为dnum1和dnum2之间的长度;num为初始值
    //整数部分只有一个时整数固定,小数部分只有一个时,小数长度固定
Boolean:
'boolean|1':res
    eg:'boolean|1':true
    //值为res的概率占了一半,res为true或false
'boolean|num1-num2':res
    eg:'boolean|1-100':true
    //值为res的概率为num1/(num1+num2)
Object:
'object|count':{
    a:1,
    b:'11',
    ...
}
    //从下面的属性中随机选择count个属性作为object的属性。count大于属性个数时取属性个数
'object|num1-num2':{
    ...
}
    //取num1-num2之间的一个数a,然后从对象属性中随机取a个属性
Array:
'array|1':[
    ...
]
    //从数组中取一个值作为array的元素
'array|count':[
    ...
]
    //将数组复制count份并连接成一个数组
'array|num1-num2':{
    ...
}
    //从num1和num2中取一个值a,然后将数组复制a份并连接成一个数组
Function:
Mock.mock({
    'foo': 'Syntax Demo',
    'name': function() {
      return this.foo
    }
  })
值:
 {
    "foo": "Syntax Demo",
    "name": "Syntax Demo"
  }
RegExp:
'regexp':/.../
  eg:'regexp':/[a-z][0-9]/          结果:'regexp':'b1'
    //生成一个满足正则内容的字符串。数字、字符等随机选取
'regexp|count':/.../
  eg:'regexp|3':/[a-z][0-9]-/        结果:'regexp':'b1-b1-b1-'
    //复制count份正则的结果并连成一个字符串
'regexp|num1-num2':/.../
  eg:'regexp|1-5':/[a-z][0-9]/        结果:'regexp':'b1b1b1b1'
  //从num1和num2中随机选取一个数a,复制a份正则的结果并串成字符串
Path:
    绝对路径:
    Mock.mock({
        "foo": "Hello",
        "nested": {
        "a": {
            "b": {
            "c": "Mock.js"
            }
        }
        },
        "absolutePath": "@/foo @/nested/a/b/c"
    })
    值:
    {
        "foo": "Hello",
        "nested": {
        "a": {
            "b": {
            "c": "Mock.js"
            }
        }
        },
        "absolutePath": "Hello Mock.js"
    }
    相对路径:
    Mock.mock({
        "foo": "Hello",
        "nested": {
          "a": {
            "b": {
              "c": "Mock.js"
            }
          }
        },
        "relativePath": {
          "a": {
            "b": {
              "c": "@../../../foo @../../../nested/a/b/c"
            }
          }
        }
      })
      值:
      {
        "foo": "Hello",
        "nested": {
          "a": {
            "b": {
              "c": "Mock.js"
            }
          }
        },
        "relativePath": {
          "a": {
            "b": {
              "c": "Hello Mock.js"
            }
          }
        }
      }
    //绝对路径是从对象的根路径开始算的,相对路径是从当前位置开始算的

PS:取的范围值都是可以取到两端的极限值的

 

posted @ 2018-09-25 16:03  sunny_fish  阅读(1492)  评论(0编辑  收藏  举报