web前端开发

VSCode插件--一个简洁的Mock数据服务器

2019-08-04  本文已影响0人  我已不是前奏丶_b665

前后分离的开发模式中,我们难免需要mock数据,一说到mock数据我们就想到大名鼎鼎的mockjs,但是每次使用mock数据时,我们都需要引入mockjs,为了做到对原始代码不做到侵入,我们还需要将mock的数据用单独文件保存,为了模拟线上环境还要本地搭建个服务器,总之就是比较麻烦。。。

为此我做了一个vscode拓展,Mock-Myself,它提供了如下功能:

如下图 我们在vscode插件中搜索Mock-Myself插件,下载安装后执行 mock-myself 就可启动mock服务器,开始我们的mock数据了。

211564919735_.pic_hd.jpg

如何使用呢?

一般情况下我们只需要简单生成mock数据,那么我们只需要写入我们简单的mock数据,这个mock数据是基于mockjs生成的,想生成一些特殊的mock数据你可以查看mockjs 使用

有时我们需要根据提交数据不同来生成不同的数据,这时我们就需要用到query这个函数了。

/**
 * req:是请求接口提交的数据对象
 * fn:是执行函数回调,函数的参数是需要生成mock数据
**/
function query(req,fn){
    
}

举个例子:假如我们有这样一个接口--‘http://localhost:8989/test/deatil’;现在我们需要根据请求参数不同返回不同数据如下:

const url = http://localhost:8989/test/deatil;
$.post(url,
  {name:'mock-self'},
  function(result){
    console.log(result);
    // 期望数据 {id:'370000201007178245',name:'Mock-Myself'}
})
$.post(url,
  {name:'easy-mock'},
  function(result){
    console.log(result);
    // 期望数据 {id:'370000201007178245',name:'Easy-Mock'}
})

从上面代码可以看出来,我们请求参数name不同需要返回不同的数据。Mock-myself就可以很方便实现:

function query(req,fn){
    switch (req.name) {
        case 'mock-myself':
            fn({id: '@id',name:'mock-self'})
            break;
        case 'easy-mock':
            fn({id: '@id',name:'easy-mock'})
            break;
        default:
            fn(true)
    }
}

通过fn参数来自定义mock返回的数据,这样以后我们想怎么mock就怎么mock,根据需要变化mock数据,让我们可以模拟更多是环境和状态。

小贴士

Mock-Myself目前支持下面三个命令:
mock-myself:启动mock服务器和可视化操作界面(启动服务器同时生成可视化界面编辑mock数据)
mock-run:直接启动mock服务器(一般本地数据都写好,只需要启动服务是使用)
mock-stop:停止mock服务器

Mock-Myself用起来虽然很爽但是还是有几点要注意:

(当然在下一个迭代中这些问题都不会存在了)

[Unreleased]

上一篇下一篇

猜你喜欢

热点阅读