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

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

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

  • 1.自动在项目工程生成文件夹保存mock数据,方便其他人使用mock数据
  • 2.自动在本地启动mock服务器
  • 3.自定义mock数据,符合mockjs生成规则
  • 4.图形化界面,方便查看使用
  • 5.自定义接口数据规则
  • 6.适配vscode主流主题色
  • 7.支持多个命令,更加方便使用。

如下图 我们在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用起来虽然很爽但是还是有几点要注意:

  • mock服务器会在你工作的项目中生成一个_MOCK_的文件夹存放mock数据,所有项目中不要用_MOCK_文件名;
  • mock服务器会启动8989端口,所以建议不要占用;
  • 一般情况直接编写mock数据,如果需要自定义规则时编写query函数记得一定要执行fn回调;
  • 每次请求接口数据都会变化,如果想数据保持不变的话在请求参数加上{...data,default:true}

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

[Unreleased]

  • 增加自定义 mock 根目录
  • 动态配置mock服务端口
  • 自定义规则query函数支持异步规则
  • ...
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容

  • 阅读之前 希望你能有以下基础,方便阅读: ECMAScript 6 (ES6) 为什么需要Mock 这样的场景,相...
    三木santree阅读 4,377评论 0 5
  • Mock Server 前端Mock接口和数据方案 前言 Mocker Server的解释:就是前端直接创建一个后...
    王乐城愚人云端阅读 3,907评论 0 5
  • 前言 最近一直在捣鼓毕设,准备做的是一个基于前后端开发的Mock平台,前期花了很多时间完成了功能模块的交互。现在进...
    临水照影233阅读 9,476评论 0 8
  • 一、为什么要模拟数据? 项目开发中,前端工程师需要依赖后端工程师的数据接口以及后端联调环境。但是其实我们也可以根据...
    小小美呀阅读 6,599评论 0 8
  • 今天,我的妈妈发烧了。但是她还得抱着我,陪我去我想去的地方玩。还要慢慢的扶着我,让我学走路。当我走累了想要休...
    姜旺儿阅读 458评论 0 1