mock.js語法規(guī)范

語法規(guī)范

數(shù)據(jù)模板定義規(guī)范 DTD

數(shù)據(jù)模板中的每個屬性由 3 部分構(gòu)成:屬性名、生成規(guī)則楞抡、屬性值:

// 屬性名   name
// 生成規(guī)則 rule
// 屬性值   value
'name|rule': value

注意:

  • 屬性名 和 生成規(guī)則 之間用豎線 | 分隔。
  • 生成規(guī)則 是可選的心铃。
  • 生成規(guī)則 有 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

  • 生成規(guī)則 的 含義 需要依賴 屬性值的類型 才能確定译断。
  • 屬性值 中可以含有 @占位符蟹地。
  • 屬性值 還指定了最終值的初始值和類型积暖。

生成規(guī)則和示例:

1. 屬性值是字符串 String

//通過重復 string 生成一個字符串,重復次數(shù)大于等于 min怪与,小于等于 max夺刑。
'name|min-max': string


通過重復 string 生成一個字符串,重復次數(shù)等于 count分别。
'name|count': string

2. 屬性值是數(shù)字 Number

//屬性值自動加 1遍愿,初始值為 number。
'name|+1': number

//生成一個大于等于 min耘斩、小于等于 max 的整數(shù)沼填,屬性值 number 只是用來確定類型。
'name|min-max': number

//生成一個浮點數(shù)括授,整數(shù)部分大于等于 min坞笙、小于等于 max,小數(shù)部分保留 dmin 到 dmax 位刽脖。
'name|min-max.dmin-dmax': number
Mock.mock({
    'number1|1-100.1-10': 1,
    'number2|123.1-10': 1,
    'number3|123.3': 1,
    'number4|123.10': 1.123
})
// =>
{
    "number1": 12.92,
    "number2": 123.51,
    "number3": 123.777,
    "number4": 123.1231091814
}

3. 屬性值是布爾型 Boolean

//隨機生成一個布爾值羞海,值為 true 的概率是 1/2忌愚,值為 false 的概率同樣是 1/2曲管。
'name|1': boolean
//隨機生成一個布爾值,值為 value 的概率是 min / (min + max)硕糊,值為 !value 的概率是 max / (min + max)院水。
'name|min-max': value

4. 屬性值是對象 Object

//從屬性值 object 中隨機選取 count 個屬性。
'name|count': object
//從屬性值 object 中隨機選取 min 到 max 個屬性简十。
'name|min-max': object

5. 屬性值是數(shù)組 Array

//從屬性值 array 中隨機選取 1 個元素檬某,作為最終值。
'name|1': array
//從屬性值 array 中順序選取 1 個元素螟蝙,作為最終值恢恼。
'name|+1': array
//通過重復屬性值 array 生成一個新數(shù)組,重復次數(shù)大于等于 min胰默,小于等于 max场斑。
'name|min-max': array
//通過重復屬性值 array 生成一個新數(shù)組,重復次數(shù)為 count牵署。
'name|count': array
Mock.mock(/api\/test/, {
    //通過重復屬性值 array 生成一個新數(shù)組漏隐,重復次數(shù)為 1-3次。
    "favorite_games|1-3": [3,5,4,6,23,28,42,45],
});

6. 屬性值是函數(shù) Function

執(zhí)行函數(shù) function奴迅,取其返回值作為最終的屬性值青责,函數(shù)的上下文為屬性 'name' 所在的對象。
'name': function

7. 屬性值是正則表達式 RegExp

根據(jù)正則表達式 regexp 反向生成可以匹配它的字符串。用于生成自定義格式的字符串脖隶。
'name': regexp
Mock.mock({
    'regexp1': /[a-z][A-Z][0-9]/,
    'regexp2': /\w\W\s\S\d\D/,
    'regexp3': /\d{5,10}/
})
// =>
{
    "regexp1": "pJ7",
    "regexp2": "F)\fp1G",
    "regexp3": "561659409"
}

數(shù)據(jù)占位符定義規(guī)范 DPD

占位符 只是在屬性值字符串中占個位置扁耐,并不出現(xiàn)在最終的屬性值中。

占位符 的格式為:

@占位符
@占位符(參數(shù) [, 參數(shù)])
注意:

用 @ 來標識其后的字符串是 占位符产阱。
占位符 引用的是 Mock.Random 中的方法做葵。
通過 Mock.Random.extend() 來擴展自定義占位符。
占位符 也可以引用 數(shù)據(jù)模板 中的屬性心墅。
占位符 會優(yōu)先引用 數(shù)據(jù)模板 中的屬性酿矢。
占位符 支持 相對路徑 和 絕對路徑。

Mock.mock({
    name: {
        first: '@FIRST',
        middle: '@FIRST',
        last: '@LAST',
        full: '@first @middle @last'
    }
})
// =>
{
    "name": {
        "first": "Charles",
        "middle": "Brenda",
        "last": "Lopez",
        "full": "Charles Brenda Lopez"
    }
}

//引入mockjs
import Mock from 'mockjs'
const Random = Mock.Random;
//使用mockjs模擬數(shù)據(jù)
Mock.mock('/api/msdk/proxy/query_common_credit', {
    "ret":0,
    "data":
      {
        "mtime": "@datetime",//隨機生成日期時間
        "score":  "@natural(1, 800)",//隨機生成1-800的數(shù)字
        "rank":  "@natural(1, 100)",//隨機生成1-100的數(shù)字
        "stars": "@natural(0, 5)",//隨機生成1-5的數(shù)字
        "nickname": "@cname",//隨機生成中文名字
      }
});

注意

get請求有帶參數(shù)時怎燥,請把接口url寫為正則匹配瘫筐,否則匹配不到就報錯(Mock.mock('此處為正則')

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市铐姚,隨后出現(xiàn)的幾起案子策肝,更是在濱河造成了極大的恐慌,老刑警劉巖隐绵,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件之众,死亡現(xiàn)場離奇詭異,居然都是意外死亡依许,警方通過查閱死者的電腦和手機棺禾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來峭跳,“玉大人膘婶,你說我怎么就攤上這事≈恚” “怎么了悬襟?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拯刁。 經(jīng)常有香客問我脊岳,道長,這世上最難降的妖魔是什么垛玻? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任割捅,我火速辦了婚禮,結(jié)果婚禮上夭谤,老公的妹妹穿的比我還像新娘棺牧。我一直安慰自己,他們只是感情好朗儒,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布颊乘。 她就那樣靜靜地躺著参淹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪乏悄。 梳的紋絲不亂的頭發(fā)上浙值,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機與錄音檩小,去河邊找鬼开呐。 笑死,一個胖子當著我的面吹牛规求,可吹牛的內(nèi)容都是我干的筐付。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼阻肿,長吁一口氣:“原來是場噩夢啊……” “哼瓦戚!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起丛塌,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤较解,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后赴邻,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體印衔,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年姥敛,在試婚紗的時候發(fā)現(xiàn)自己被綠了奸焙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡徒溪,死狀恐怖忿偷,靈堂內(nèi)的尸體忽然破棺而出金顿,到底是詐尸還是另有隱情臊泌,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布揍拆,位于F島的核電站渠概,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏嫂拴。R本人自食惡果不足惜播揪,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望筒狠。 院中可真熱鬧猪狈,春花似錦、人聲如沸辩恼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至疆前,卻和暖如春寒跳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背竹椒。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工童太, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胸完。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓书释,卻偏偏與公主長得像,于是被迫代替她去往敵國和親赊窥。 傳聞我的和親對象是個殘疾皇子征冷,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 雙十一我花了1280元買了本10年使用權(quán)的筆記本。這么昂貴的記錄本誓琼,還只是使用權(quán)检激,難道她具有落筆生花,點石為金的功...
    HelloKevin閱讀 247評論 2 3
  • 一面墻腹侣,兩種心情叔收。當商量都成了必不必要的時候,釋然傲隶,她失望了饺律,絕望了;是愧疚跺株,還是責任复濒,他迷惘;是無奈乒省,還是...
    素木兮玲閱讀 203評論 0 0
  • 問1:從這次課程中學到什么巧颈? 我以前做的是傳統(tǒng)行業(yè)的營銷宣傳 ,采用的是傳統(tǒng)的宣傳手法袖扛,對于定位比較了解砸泛。這堂課讓...
    快來跳舞閱讀 405評論 2 2