mock.js 的語法規范包括兩個部分:
1,數據模板定義規范
2,數據占位符定義規范
數據模板定義規范
每個屬性由3部分構成:屬性名、生成規則、屬性值
'屬性名 | 生成規則 ' :屬性值
①生成規則是可選的
②生成規則有7中格式:
③生成規則的含義需要依賴屬性值的類型才能確定
屬性值中可以含有 @占位符
屬性值還指定了最終值的初始值和類型
屬性值是字符串String
① 'name | min-max ' : string : 通過重復 string 生成一個字符串,重復次數大於等於 min , 小於等於 max
② 'name | count ' : string : 通過重復 string 生成一個字符串,重復次數等於 count
屬性值是數字Number
① ' name | +1 ' : number:屬性值自動加1,初始值為 number
② ' name | min-max ' : number : 生成一個大於等於 min、小於等於 max 的整數,屬性值 number 只是用來確定類型
③ ' name | min-max.dmin-dmax ' : number:生成一個浮點數,整數部分大於等於 min,小於等於 max,小數部分保留到 dmin 到 dmax 位
屬性值是 布爾型 Boolean
① ' name | 1 ' : boolean:隨機生成一個布爾值,值為 true 的概率是 1/2,值為 false的概率同樣式 1/2
② ' name | min-max ' : value:隨機生成一個布爾值,值為 value的概率是 min / ( min+max ) ,值為 !value 的概率是 max / ( min+max )
屬性值是對象 Object
① ' name | count ' : object:從屬性值 object 中隨機選取 count 個屬性
② ' name | min-max ' : object:從屬性值 object 中隨機選取 min 到 max 個屬性
屬性值是數組 Array
① ' name | 1 ' : array:從屬性值 array 中隨機選取1個元素,作為最終值
② ' name | +1 ' : array : 從屬性值 array 中順序選取1個元素,作為最終值
③ ' name | min-max ' : array:通過重復屬性值 array 生成一個新數組,重復次數大於等於 min,小於等於 max
④ ' name | count ' : array:通過重復屬性值 array 生成一個新數組,重復次數為 count
屬性值是函數 function
① ' name' : function:執行函數 function ,取其返回值作為最終的屬性值,函數的上下文為屬性 ' name ' 所在的對象
屬性值是正則表達式 RegExp
① ' name' : regexp:根據正則表達式 regexp 反向生成可以匹配它的字符串,用於生成自定義格式的字符串
數據占位符定義規范
①占位符只是在屬性值字符串中占個位置,並不出現在最終的屬性值中
②通過 ' @占位符 ' 這種方式來隨機產生各種不同的數據
③兩種方式可以輸出這種隨機占位符,
console.log( Mock.Random.name() )
console.log( Mock.mock('@name') )
④占位符名稱:
const Mock = require('mockjs') const data=Mock.mock({ name:'@name', //隨機英文名 cname:'@cname', //隨機中文名 id: '@id', //隨機id city:'@city', //隨機城市 ctitle:'@ctitle', //隨機中文標題 color:'@color', //隨機顏色,十六進制 image:'@image', //隨機圖片,一個圖片地址 ip:'@ip', //隨機ip地址 url:'@url', //隨機 url 地址 string:'@string', //隨機字符串 integer:'@integer', // 隨機數值 datetime:'@datetime', //隨機日期 full:'@name @city' }) console.log(JSON.stringify(data,null,4)) /** * { "name": "Larry Williams", "cname": "毛勇", "id": "510000200404287447", "city": "海外", "ctitle": "影那層究電月", "color": "#79f29a", "image": "http://dummyimage.com/728x90", "ip": "121.134.158.233", "url": "http://buiurx.na/vstqnnatr", "string": "*vA)", "integer": 155467471122952, "datetime": "2000-05-28 15:46:52", "full": "Larry Williams 海外" } */
如果希望自己想要的數據格式進行填充,可以使用擴展功能自己擴展: