mock-service-cli 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -19
- package/lib/mockServer.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
[](https://github.com/chandq/mock-service-cli/blob/master/LICENSE.md)
|
|
7
7
|
[](https://npmcharts.com/compare/mock-service-cli?minimal=true)
|
|
8
8
|
|
|
9
|
-
#
|
|
9
|
+
# 🦅 一个基于 [node](https://nodejs.org/en/) 和 [express](https://www.expressjs.com.cn/) 的 本地 Mock Server 命令行工具
|
|
10
10
|
|
|
11
11
|
### 简介
|
|
12
12
|
|
|
@@ -36,7 +36,7 @@ This will install `mock-service-cli` globally so that it may be run from the com
|
|
|
36
36
|
|
|
37
37
|
## Usage:
|
|
38
38
|
|
|
39
|
-
mock-service-cli [
|
|
39
|
+
mock-service-cli [options] [path]
|
|
40
40
|
|
|
41
41
|
`[path]` defaults to `./mock` .
|
|
42
42
|
|
|
@@ -63,28 +63,51 @@ This will install `mock-service-cli` globally so that it may be run from the com
|
|
|
63
63
|
|
|
64
64
|
`mock-service-cli -f ./mock/test.js`
|
|
65
65
|
|
|
66
|
-
###
|
|
66
|
+
### 编写 Mock 文件
|
|
67
67
|
|
|
68
|
-
>
|
|
68
|
+
> mock 请求的类型支持`GET`,`POST`,`PUT`,`DELETE`,`PATCH`,`OPTIONS`,`COPY`,`LINK`,`UNLINK`,`PURGE`
|
|
69
|
+
|
|
70
|
+
如果 `./mock/test.js` 的内容如下,
|
|
69
71
|
|
|
70
72
|
```javascript
|
|
71
73
|
module.exports = {
|
|
72
|
-
|
|
73
|
-
'
|
|
74
|
-
'
|
|
75
|
-
'
|
|
76
|
-
'
|
|
77
|
-
'
|
|
78
|
-
'
|
|
79
|
-
'
|
|
80
|
-
'
|
|
81
|
-
'
|
|
82
|
-
'
|
|
83
|
-
'/mock/
|
|
74
|
+
// GET 可忽略
|
|
75
|
+
'/mock/mock/api/test': { aa: 1, bb: '默认GET请求' },
|
|
76
|
+
'GET /mock/api/:id/test': { aa: 1, bb: '使用id占位符' },
|
|
77
|
+
'GET /mock/api/test1': { aa: 1, bb: '指定GET 方法' },
|
|
78
|
+
'POST /mock/api/test': { aa: 1, bb: 'POST 方法' },
|
|
79
|
+
'DELETE /mock/api/test': { aa: 1, bb: 'DELETE 方法' },
|
|
80
|
+
'PUT /mock/api/test': { aa: 1, bb: 'PUT 方法' },
|
|
81
|
+
'PATCH /mock/api/test': { aa: 1, bb: 'PATCH 方法' },
|
|
82
|
+
'OPTIONS /mock/api/test': { aa: 1, bb: 'OPTIONS 方法' },
|
|
83
|
+
'COPY /mock/api/test': { aa: 1, bb: 'COPY 方法' },
|
|
84
|
+
'LINK /mock/api/test': { aa: 1, bb: 'LINK 方法' },
|
|
85
|
+
'UNLINK /mock/api/test': { aa: 1, bb: 'UNLINK 方法' },
|
|
86
|
+
'PURGE /mock/api/test': { aa: 1, bb: 'PURGE 方法' },
|
|
87
|
+
// 支持自定义函数,API 参考 express@4
|
|
88
|
+
'/mock/api/video/test': (req, res) => {
|
|
89
|
+
// 添加特定请求头token
|
|
90
|
+
res.setHeader('token', '5848778333359208');
|
|
84
91
|
res.json({ aa: 1, bb: 'asdf' });
|
|
85
|
-
},
|
|
86
|
-
'/mock/image/test': (req, res) => {
|
|
87
|
-
res.json({ aa: 1, bb: 'yyds' });
|
|
88
92
|
}
|
|
89
93
|
};
|
|
90
94
|
```
|
|
95
|
+
|
|
96
|
+
然后访问 `本地代理地址` + `/mock/api/222/test` (例如`http://127.0.0.1:8090/mock/api/222/test`) 就能得到 { aa: 1, bb: '使用 id 占位符' } 的响应,其他以此类推。
|
|
97
|
+
|
|
98
|
+
### 引入 Mock.js
|
|
99
|
+
|
|
100
|
+
[Mock.js](http://mockjs.com/) 是常用的辅助生成模拟数据的三方库,借助他可以提升我们的 mock 数据能力。
|
|
101
|
+
|
|
102
|
+
比如:
|
|
103
|
+
|
|
104
|
+
```js
|
|
105
|
+
const mockjs = require('mockjs');
|
|
106
|
+
|
|
107
|
+
module.exports = {
|
|
108
|
+
// 使用 mockjs 等三方库
|
|
109
|
+
'GET /api/tags': mockjs.mock({
|
|
110
|
+
'list|100': [{ name: '@city', 'value|1-100': 50, 'type|0-2': 1 }]
|
|
111
|
+
})
|
|
112
|
+
};
|
|
113
|
+
```
|
package/lib/mockServer.js
CHANGED
|
@@ -8,7 +8,7 @@ const express = require('express'), // 引入express
|
|
|
8
8
|
const ifaces = os.networkInterfaces();
|
|
9
9
|
const { dateFormat, logger } = require('./utils');
|
|
10
10
|
|
|
11
|
-
const methodRegExp = new RegExp('(GET|POST|PUT|DELETE|HEAD|PATCH|OPTIONS|COPY|LINK|UNLINK|PURGE) (.*)', 'i');
|
|
11
|
+
const methodRegExp = new RegExp('(GET|POST|PUT|DELETE|HEAD|PATCH|OPTIONS|COPY|LINK|UNLINK|PURGE) +(.*)', 'i');
|
|
12
12
|
|
|
13
13
|
const app = express();
|
|
14
14
|
const log = logger(process.env.SILENT);
|