mock.js使用

语法规范

包含两部分:
1)数据模板定义规范(Data Template Definition,DTD)
2)数据占位符定义规范(Data Placeholder Definition,DPD)

数据模板定义规范-DTD

数据模板钟的每个属性由3部分构成:属性名(name),生成规则(rule)、属性值(value),'name|rule': value
生成规则由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

示例:

  1. 属性值是字符串 String
    1)'name|min-max': string
    通过重复 string 生成一个字符串,重复次数大于等于 min,小于等于 max。
    2)'name|count': string
    通过重复 string 生成一个字符串,重复次数等于 count。

  2. 属性值是数字Number
    1)'name|+1': number 【easy-mock不生效】
    属性值自动加 1,初始值为 number。
    2)'name|min-max': number
    生成一个大于等于 min、小于等于 max 的整数,属性值 number 只是用来确定类型。
    3)'name|min-max.dmin-dmax': number
    生成一个浮点数,整数部分大于等于 min、小于等于 max,小数部分保留 dmin 到 dmax 位。

3.属性值是布尔型Boolean
1)'name|1': boolean
随机生成一个布尔值,值为 true 的概率是 1/2,值为 false 的概率同样是 1/2。
2)'name|min-max': value
随机生成一个布尔值,值为 value 的概率是 min / (min + max),值为 !value 的概率是 max / (min + max)

4.属性值是对象Object
1)'name|count': object
从属性值 object 中随机选取 count 个属性。
2) 'name|min-max': object
从属性值 object 中随机选取 min 到 max 个属性。

     "object|2": {
        "310000": "上海市",
        "320000": "江苏省",
        "330000": "浙江省"
      },
    }

5.属性值是数组Array
1) 'name|1': array
从属性值 array 中随机选取 1 个元素,作为最终值。
2)'name|+1': array
从属性值 array 中顺序选取 1 个元素,作为最终值。 【easy-mock不生效】
3)'name|min-max': array
通过重复属性值 array 生成一个新数组,重复次数大于等于 min,小于等于 max。
4)'name|count': array
通过重复属性值 array 生成一个新数组,重复次数为 count。

      'number1|1': [1, 2, 3, 4],
      'number2|3': [1, 2, 3, 4],
      'number3|+1': [1, 2, 3, 4],
      'number4|2-3': [1, 2, 3, 4],

6.属性值是函数Function
1) 'name': function
执行函数 function,取其返回值作为最终的属性值,函数的上下文为属性 'name' 所在的对象。

7.属性值是正则表达式RegExp
1)'name': regexp
根据正则表达式 regexp 反向生成可以匹配它的字符串。用于生成自定义格式的字符串。

      'number': /[a-z][A-Z][0-9]/,

数据占位符定义DPD

占位符 只是在属性值字符串中占个位置,并不出现在最终的属性值中。


mock.js使用_第1张图片
占位符方法

Basic

1)boolean:boolean( min, max, current )或boolean()
指示参数 current 出现的概率。概率计算公式为 min / (min + max)。该参数的默认值为 1,即有 50% 的概率返回参数 current。

"name_1": "@boolean(10,90,true)",
"name_2": "@boolean",
"name_3": "@boolean()"

2)natural:natural( min, max )或natural( min )或natural()
返回一个随机的自然数(大于等于 0 的整数)。
3)integer:integer( min, max )或integer( min )或integer()
返回一个随机的整数。
4)float:float()或float( min )或float( min, max )或float( min, max, dmin )或float( min, max, dmin, dmax ) 其中,dmax默认值是17
返回一个随机的浮点数。

"name_1": "@float(1,100,1,2)",
"name_2": "@float(1,100,1)"

5)character:character()或character( 'lower/upper/number/symbol' )或character( pool )
返回一个随机字符。
内置字符池:
{
lower: "abcdefghijklmnopqrstuvwxyz",
upper: "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
number: "0123456789",
symbol: "!@#$%^&*()[]"
}

 "name_1": "@character(pool)",
 "name_2": "@character('lower')",
 "name_3": "@character('aeiou')",

6)string:string()或string( length )或string( pool, length )或string( min, max )或string( pool, min, max )
返回一个随机字符串。默认最大长度max=7。
内置字符池与character提及到的一样.

      "name_1": "@string()",
      "name_2": "@string(5)",
      "name_3": "@string('lower',4)",
      "name_4": "@string('壹贰叁肆伍陆柒捌玖拾',1,4)",

7)range:range( start )或range( start, stop )或range( start, stop, step )
返回一个整型数组。包含起始值,不包含结束值。

      "name_1": "@range(1)",
      "name_2": "@range(1,5)",
      "name_3": "@range(1,5,2)",

8)date:date()或date(format)
返回一个随机的日期字符串。默认格式为 yyyy-MM-dd

      "name_1": "@date()",
      "name_2": "@date('yyyy-MM-dd')",
      "name_3": "@date('yyyy-MM-dd HH:mm:ss A')",
mock.js使用_第2张图片
format

9)time:time()或time( format )
返回一个随机的时间字符串。默认格式为 HH:mm:ss
10)datetime:datetime()或datetime( format )
返回一个随机的日期和时间字符串。默认格式为 yyyy-MM-dd HH:mm:ss
11)now:now()或now( format )或now( unit )或now( unit, format )
返回当前的日期和时间字符串。默认格式为 yyyy-MM-dd HH:mm:ss
unit包含:'year'、'month'、'day'、'week'、'hour'、'minute'、'second'

      "name_1": "@now()",
      "name_2": "@now('yyyy-MM-dd')",
      "name_3": "@now('yyyy-MM-dd HH:mm:ss A')",
      "name_4": "@now('second')",

image

1)image:image()或image( size )或image( size, background )或image( size, background, text )或image( size, background, foreground, text )或image( size, background, foreground, format, text )
生成一个随机的图片地址
2)dataImage:dataImage()或dataImage( size )或dataImage( size, text )
生成一段随机的 Base64 图片编码。

Text

1)paragraph:paragraph()或paragraph( len )或paragraph( min, max )。默认值是3到7之间的随机数。
随机生成一段文本
2)cparagraph:cparagraph()或cparagraph( len )或cparagraph( min, max )
随机生成一段中文文本
3)sentence:sentence()或sentence( len )或sentence( min, max )。默认长度是12到18.
随机生成一个句子,第一个单词的首字母大写。
4)csentence:csentence()或csentence( len )或csentence( min, max )
随机生成一段中文文本。
5)word:word()或word( len )或word( min, max )。默认长度是3到10
随机生成一个单词(随机的小写字母)。
6)cword:cword()或.cword( pool )或cword( length )或cword( pool, length )或cword( min, max )或cword( pool, min, max )。默认长度是1个汉字。
随机生成一个汉字。
7)title:title()或title( len )或title( min, max )。默认长度是3到7。
随机生成一句标题,其中每个单词的首字母大写。
8)ctitle:ctitle()或ctitle( len )或ctitle( min, max )。默认长度是3到7。
随机生成一句中文标题。

Name

first() 随机生成一个常见的英文名。
last() 随机生成一个常见的英文姓。
name() 随机生成一个常见的英文姓名
name(true) 随机生成一个常见的英文姓名(包含中间名。。false:不包含中间名)
cfirst() 随机生成一个常见的中文名。
clast() 随机生成一个常见的中文姓。
cname() 随机生成一个常见的中文姓名。

      "name_1": "@name()",
      "name_2": "@name(true)",
      "name_3": "@first()",
      "name_4": "@last()",
      "name_5": "@cfirst()",
      "name_6": "@clast()",
      "name_7": "@cname()",

Web

url():随机生成一个 URL。
url( protocol, host ):随机生成一个 URL,并指定 URL 域名和端口号。【easy-mock中不生效】
protocol():随机生成一个 URL 协议。返回以下值之一:'http'、'ftp'、'gopher'、'mailto'、'mid'、'cid'、'news'、'nntp'、'prospero'、'telnet'、'rlogin'、'tn3270'、'wais'。
domain():随机生成一个域名。
tld():随机生成一个顶级域名。
email():随机生成一个邮件地址。
email( domain ):指定邮件地址的域名。【easy-mock中不生效】
ip():随机生成一个 IP 地址。

      "name_1": "@url('http', 'nuysoft.com')",
      "name_2": "@protocol()",
      "name_3": "@domain()",
      "name_4": "@tld()",
      "name_5": "@email()",
      "name_6": "@email('nuysoft.com')",
      "name_7": "@ip()",

示例

{
  "success": true,
  "data": {
    "projects|3-10": [{
      "name": "@boolean(10,90,true)",
      "url": "@url",
      "email": "@email",
      "address": "@county(true)",
      "string|1-10": "★",
      "number|1-100": 100,
      "boolean|1-2": true,
      "object|2": {
        "310000": "上海市",
        "320000": "江苏省",
        "330000": "浙江省"
      },
    }]
  }
}

Address

region():随机生成一个(中国)大区。
province():随机生成一个(中国)省(或直辖市、自治区、特别行政区)。
city():随机生成一个(中国)市。
city( true|false ):指示是否生成所属的省。true-返回格式:"安徽省 宣城市"。
county():随机生成一个(中国)县。
county( true|false ):指示是否生成所属的省、市。
zip():随机生成一个邮政编码(六位数字)。

Helper

      "name_1": "@capitalize('hello')",  把字符串的第一个字母转换为大写。
      "name_2": "@upper('hello')",   把字符串转换为大写。
      "name_3": "@lower( 'hello' )", 把字符串转换为小写。
      "name_4": "@pick(['a', 'e', 'i', 'o', 'u'])", 从数组中随机选取一个元素,并返回。
      "name_5": "@shuffle(['a', 'e', 'i', 'o', 'u'])", 打乱数组中元素的顺序,并返回。

Miscellaneous

      "name_1": "@guid()", 随机生成一个 GUID。格式:"name_1": "94f9C233-d80b-A0DD-cd64-E9249fD4C90d",
      "name_2": "@id()", 随机生成一个 18 位身份证。
      "name_3": "@increment()", 生成一个全局的自增整数。 格式:"name_3": 214,
      "name_4": "@increment(2)", 生成一个全局的自增整数,步数为2。 格式:"name_4": 216,

你可能感兴趣的:(mock.js使用)