mock-http-mini
Mock + Express 本地假数据服务器,数据文件格式直接采用Mock的语法,同时间,支持扩展Mock数据占位符
安装
npm install mock-http-mini
运行
- 切换到需要运行本地服务器的根目录
cd dist
- 直接运行或者指定端口号,指定的端口号会覆盖mockhttp.js中配置的端口号
mock-http-mini 或者 mock-http-mini 8080
mockhttp.js配置
在开启服务器的根目录下面添加配置文件mockhttp.js
,如不添加配置文件,则采用默认配置
配置项
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
defaultDataFile |
{String} |
空 |
静态数据文件名,,只支持js 文件和json 文件 |
baseDist |
{String} |
空 |
所有数据文件的根目录,是相对路劲,相对于当前操作的根目录 |
port |
{Number}} |
8090 |
本地服务器端口号 |
openBrowser |
{Boolean} |
false |
开启服务器是否自动打开浏览器 |
dev |
{Boolean} |
false |
是否是开发模式,用于打印对应的信息 |
middleWare |
{Function|Array|Object} |
空 |
Express中间件,可用于截获请求,实现自定义逻辑 |
mockExtend |
{Object}} |
{} |
Mock 数据占位符扩展 |
defaultDataFile
对于没有特殊要求的数据可以直接写在一个文件上,减少数据文件的个数
defaultDataFile: 'index.json'
middleWare
function (req, res, next, server){
}
req
, res
, next
具体的可以看Express中间件开发文档
参数server
为mock-http-server
数据处理类MockServer
提供如下接口
属性 | 描述 |
---|---|
loadData(requestUrl) |
requestUrl 配置的数据模板对应的key 值,根据请求的地址获取配置的数据模版生成的数据,并返回Promise |
updateData(requestUrl, data) |
requestUrl 同上,data 为对应的数据。每次请求接口,是否返回新的数据 |
// Object格式middleWare: api: '/goform/module' { server; server; } // Array格式middleWare: api: '/goform/module' { server; server; } api: 'xxx' { //xxx } ... // Function格式{ // xxx}
mockExtend
mockExtend: { if iptext === '' || iptext === undefined return `192.168..`; let ip = ; iptext += ''; iptext; return ip; } ......
完整示例如下:
moduleexports = defaultDataFile: 'index.json' baseDist: 'data' port: 8090 openBrowser: false dev: false /** * 中间件,拦截请求之类的操作 * req: express请求参数, res:express返回参数, next:express传递, server: 当前数据操作的server对象 * function(req, res, next, server) */ middleWare: api: '/goform/module' { server; server; } /** * Moc扩展 */ mockExtend: { if iptext === '' || iptext === undefined return `192.168..`; let ip = ; iptext += ''; iptext; return ip; } ;
数据文件配置项说明
配置项
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
delay |
{Number} |
0 |
延迟返回数据,单位为毫秒,默认不延迟 |
refresh |
{Boolean} |
false |
每次请求接口,是否返回新的数据 |
template |
{Object | function}} |
空 |
mock数据模版,为function需要返回对应的数据,异步数据需要返回Promise |
如果没有其他配置参数可省略template
,直接返回template
对应的值
js文件例子
moduleexports = // 有参赛配置 getMess: delay: 200 refresh: true template: 'ID|+1': 1 'title': 'Demo' 'mess': '★' 'age|1-100': 100 'ip': '@IP' 'ip1': '@IP("192.1-12.250-254.0")' // 无参数配置 getData: 'ID|+1': 1 'title': 'Demo' 'mess': '★' 'age|1-100': 100 'ip': '@IP' 'ip1': '@IP("192.1-12.250-254.0")' // 函数模版 { return a: 1 ... } // 异步数据 { return { ; }; }
json文件例子