Easy-mock

作者: 高级程序狗 | 来源:发表于2020-01-27 16:43 被阅读0次

    介绍一款前端mock神器和本地部署方法。

    在前端开发中,常见的mock方式有:

    • 直接将数据写在代码中
    • 利用Charles、 Fiddler等代理工具拦截请求
    • 本地起服务

    easy-mock属于第三种,并通过mock.js来生成随机数据。mock.js这个库真的是相见恨晚,再也不用自己造那些lowB的数据了。但是直接使用mock.js是比较痛苦的,需要自己搭环境起服务,或者直接写在代码里打包时再删掉。easy-mock就是解决这个问题而产生的,它是一款会员体系 + api信息存储 + mock.js的系统。并且,easy-mock在2017年9月正式开源,意味着我们可以把easy-mock部署在本地或者内部测试环境使用。

    本文主要介绍mock.js的常见用法和本地部署easy-mock两部分:

    mock.js

    Mock.js 的语法规范包括两部分:

    • 数据模板定义(Data Temaplte Definition,DTD)
    • 数据占位符定义(Data Placeholder Definition,DPD)

    数据模板定义主要是介绍模板中的一些特殊规则:
    例如:

    {
        "name|1":['a','b','c']
    }
    //从数组中随机抽取一项
    //==>{"name":"b"}
    
    {
        "foo|1-2":{a:1,b:2,c:3}
    }
    //从对象中随机抽取1-2个属性
    //===>{"foo":{"a":1,"b":2}}
    
    {
      "code|1": [200, 500],
      "errorMessage": function() {
        if (this.code == 500) {
          return '网络错误,请重新尝试'
        }
        return ''
      }
    }
    //函数的返回值为最终的属性值
    

    规则有很多啦,详见官方文档
    模板可以通过Mock.mock(template)函数来解析。

    数据占位符是一个工具类,可以生成各种随机数据
    例如:

    //生成0-10随机数字
    Mock.Random.integer(0, 10)
    
    //随机email
    Mock.Random.email()
    
    //...
    

    放个完整的感受一下,其实就几行代码,就能随机生成1-50个item组成的list,并且各个属性还是随机的:

    {
      "code": 200,
      "errorMessage": "",
      "data|1-50": [{
        'applicationId|+1': 11,
        'label': '@name',
        'description': '@sentence',
        'version': '@string(7, 10)',
        'created': '@date',
        'modified': '@date',
        'plugins|1-30': [{
          'pluginId': '@integer(1000-9999)'
        }]
      }],
    }
    

    easy-mock本地部署

    首先拉代码,然后yarn

    $ git clone https://github.com/easy-mock/easy-mock.git
    $ cd easy-mock && yarn
    

    然后yarn run dev

    肯定会报错的:-)
    通过一些试错,慢慢就会发现:
    环境需要Node.js(>= v8.9)& MongoDB(>= v3.4)& Redis(>= v4.0)等等

    mongodb,参考:

    #我用sudo brew install mongodb会报错
    brew install mongodb
    
    #到根目录创建文件夹,mongodb默认貌似是在根目录找,如何换地方没研究过
    cd /
    mkdir -p /data/db
    
    #设置权限,要输入密码
    #其中-p是创建多个文件目录使用的参数,-R表示对目录进行递归操作,就是data目录下的子文件也设置该权限。
    sudo chmod -R admin /data
    
    #启动
    mongod
    

    redis:

    #安装
    brew install redis
    
    #启动
    brew services start redis
    
    #停止--如果需要
    brew services stop redis
    

    over,谢谢!

    相关文章

      网友评论

          本文标题:Easy-mock

          本文链接:https://www.haomeiwen.com/subject/ykjethtx.html