安装
- npm i yo -g (安装yeoman)
- npm i generator-mockserver -g (安装脚手架)
- yo
- 选择 Mockserver
- 输入项目名称,比如: test
- cd test
- npm install
-
npm run start
如果你的浏览器出现下图就说明安装和运行都ok了.
注: 本脚手架使用koa2和es6编写且没有使用任何构建工具,所以请保证您的node版本是7.0以上.
编写接口
wt-mock基于koa2与mockj进行制作,不过您如果不熟悉koa也一点都不妨碍
您编写数据接口,下面是关于如何创建一个项目和编写一个接口的步骤:
项目的目录结构如下
- 点开project文件夹,新建文件夹输入您的项目名称: 比如 taobao
- 我们现在在taobao的文件夹里写一个login的接口,在taobao目录里新建文件login.js
- 把下面的代码贴到login.js里:
function makeIns(ctx) {
const data = {
code: '666',
msg: 'success'
}
ctx.body = data;
}
module.exports = makeIns; - 回到命令窗口,按两次ctrl+c,结束服务,然后再次运行npm start,这时浏览器访问http://127.0.0.1:7777/taobao/login
就能看到接口返回的数据,上面的函数的data就是你要返回的数据,data可以是任意类型,至于ctx是什么,我想您需要去
一下koa的文档. - 综上所述,如果您要开发一套模拟数据接口,只需要在project下面新建一个文件夹,这个文件夹就是您的项目,有几个项目
就建几个文件夹,在文件夹内所建的js文件就是您的接口,文件名是什么,接口名就是什么.当我们访问http://127.0.0.1:7777
的时候,页面会列出你所有的接口地址,这些接口可以同时使用get和post请求. - 如果wt-mock只是单单的返回数据而已,那未免太费周折了.在开发中我们常常要根据前端传来的参数返回不同的内容,
这个也很简单,假设有这样的一个请求 http://127.0.0.1:7777/taobao/login?username=laohu&psw=123,要获取请求参数,
makeIns这个函数接收了一个ctx的参数,ctx包含了请求的所有信息,get请求就用ctx.query.username来获取username的值,
而post请求则使用ctx.request.body.xxx获取参数对应的值.
高级技巧
- 我们每次修改接口的时候,都需要重启服务,这个很麻烦,有没有自动重启的工具呢,答案是:有
- 安装 npm install supervisor -g 当我们用node app.js来执行app.js的时候,我们可以supervisor app.js来执行,这样,当我们修改了代码就能马上看到结果而不用重启.
注意: 当我们在执行npm start的时候,背地里其实是执行了node app.js,所以当我们在编写接口的时候,也可以不使用npm start只需执行node app.js就好了,如果我们需要修改接口使用supervisor app.js会很方便.
在模拟数据接口的时候,我们常常需要返回一些随机的数字,随机的字符串或者随机的姓名等等,这些我们当然可以自己去实现,但是有人把这个事已经给我们做了,那就是mockjs模块,您只需安装一下就可以使用,mockjs文档地址: http://mockjs.com/,如果您需要对日期做一些处理,那么可以是使用moment模块,地址:http://momentjs.cn/docs/
调试接口是建很痛苦的事,因为nodejs是后台语言,我们面对的只是个小黑窗口,然而,已经有人为给我们做了很好的工具,感谢这些乐于分享开源的同行.这个工具就是大名鼎鼎的node-spector, 具体用法:
- 全局安装node-inspector npm install node-inspector -g
- 启动服务 node --debug app.js (一定记得加上 --debug 这个参数 )
- 执行 node-inspector
- 打开浏览器,输入提示的网址和端口
- 找到要调试的接口文件,打好断点,然后访问接口,就可以向在浏览器调试js一样来调试node了