1. 什么是Mock  # 
- 什么是Mock?? Mock其实就是真实数据存在之前,即调试期间的代替品
 
2. 如何Mock数据?  # 
- 最low的方式将 Mock 数据写在代码里、json文件里;
 
- 利用 Charles 、Fiddler等代理工具,将 URL 映射到本地文件;
 
- 本地起 Mock Server,即mockjs,有点麻烦每次修改了后还要重启服务
 
3. Mock语法  # 
| 占位符 | 
含义 | 
| @ip | 
随机输出一个IP | 
| @id | 
随机输出长度18的字符,不接受参数 | 
| array/1-10 | 
随机输出1-10长度的数组,也可以直接是固定长度 | 
| object/2 | 
输出一个两个key值的对象 | 
| @image() | 
返回一个占位图url,支持size, background, foreground, format, text | 
| @cname | 
生成一个中文名 | 
| @datetime | 
生成一个随机的时间 | 
let Mock = require('mockjs');
let result = Mock.mock({
    "code": 0,
    "message": "请求成功",
    "data|20": [{
        "id":"@id",
        "ip":"@ip",
        "name": "@cname",
        "userId": "@id",
        "stars|2":['★'],
        "colors|2":{red:'red',yellow:'yellow',blue:'blue'},
        "avatar":"@image()",
        "createAt": "@datetime"
    }]
})
console.log(result);
4. easy-mock  # 
- easy-mock
 
- Easy Mock就是一个在线创建mock的服务平台,帮你省去你 配置、安装、起服务、维护、多人协作Mock数据不互通等一系列繁琐的操作
 
5. 基本用法  # 
{
  "data|5": [{
    "id|1-1000": 1,
    "title": "@csentence",
    "url": "@url",
    "image": "@image(300x200)",
    "createAt": "@datetime"
  }],
  "code": 0
}
5.高阶用法  # 
| 对象 | 
描述 | 
| Mock | 
Mock 对象 | 
| _req.url | 
获得请求 url 地址 | 
| _req.method | 
获取请求方法 | 
| _req.params | 
获取 url 参数对象 | 
| _req.querystring | 
获取查询参数字符串(url中?后面的部分),不包含 ? | 
| _req.query | 
将查询参数字符串进行解析并以对象的形式返回,如果没有查询参数字字符串则返回一个空对象 | 
| _req.body | 
当 post 请求以 x-www-form-urlencoded 方式提交时,我们可以拿到请求的参数对象 | 
| … | 
_req.cookies、ip、host等等 docs | 
GET /mock/5cfa0f3b9a819c502224e47f/news?%3Fcode=0&name=zhufeng HTTP/1.1
Accept: application/json, *
{
  success: true,
  data: {
    name: function({
      _req
    }) {
      return _req.query.name;
    },
    code: function({
      _req
    }) {
      return _req.query.code ? 0 : 1;
    },
    data: function({
      _req,
      Mock
    }) {
      return {
        token: Mock.mock("@guid()"),
        userId: Mock.mock("@id(5)"),
        cname: Mock.mock("@cname()"),
        name: Mock.mock("@name()"),
        avatar: Mock.mock("@image(200x100, #FF6600)")
      }
    }
  }
}
6.在线调试  #