express mockjs api 服务中间件
$ npm install --save express-mock-doc
- 创建目录
mock-server
然后创建app.js
内容如下:
const express = require('express'),
mock = require('express-mock-doc'),
bodyParser = require('body-parser'),
apiList = require('./mocks/api.js');
const app = express();
app.use(bodyParser.json()); //使用这个可以直接使用 req.body;
app.use(mock(express,apiList))
app.listen(3001)
- 在
mock-server
下创建mocks
目录,然后创建api.js
内容如下:
var list = {
"/getUserByUid/:uid":{
eq:"/getUserByUid/1",
type: "get",
title: "根据用户id查询用户信息",
data: (req)=>{
return {
"uid":req.params.uid,
"name":"@cname"
}
}
},
"/login/":{
type: "post",
title: "用户登录接口",
params:{
loginId:"123456",
password:"111111"
},
data: (req)=>{
let returnData;
if(req.body.loginId == "123456"&& req.body.password == "111111"){
returnData = {
code:"1",
msg:"login success",
userInfo:""
}
}else{
returnData = {
code:"0",
msg:"login error",
}
}
return returnData
}
},
}
module.exports = list
- 安装依赖模块
$ npm i -S express express-mock-doc
- 启动
$ node app.js
# 或者,需要全局安装nodemon
$ nodemon app.js
然后你可以访问 http://localhost:3000/ 查看API文档。
上图:
推荐使用 nodemon 监视自动重启服务
express-mock-doc 输出一个函数mock,传入两个参数,一个是express对象,另一个是指定的路由列表格式如下:
var apiList={
url:{ //路由支持exoress的router API的所有路由规则,如:“/getname”、“/getnameById/:id”、“/getnameById?id=12”
eq:"",//示例路径,如果我们将url写成“/getnameById/:id”格式那么就必须包含eq参数,并且将其携程如“/getnameById/12”否则会出错。
title:"",//接口名称描述
data:"",//数据,支持mockjs语法,只要return是json就成,可以是函数
params:""//如果是post或者需要传参的api在这里写参数仅支持json格式
}
}
module.exports = apiList;