UNPKG

5.32 kBMarkdownView Raw
1# mock-servicer - 用于提供模拟数据的node服务器。
2
3<p>
4 <a href="https://hai2007.gitee.io/npm-downloads?interval=7&packages=mock-servicer"><img src="https://img.shields.io/npm/dm/mock-servicer.svg" alt="downloads"></a>
5 <a href="https://packagephobia.now.sh/result?p=mock-servicer"><img src="https://packagephobia.now.sh/badge?p=mock-servicer" alt="install size"></a>
6 <a href="https://www.npmjs.com/package/mock-servicer"><img src="https://img.shields.io/npm/v/mock-servicer.svg" alt="Version"></a>
7 <a href="https://github.com/hai2007/mock-servicer/blob/master/LICENSE"><img src="https://img.shields.io/npm/l/mock-servicer.svg" alt="License"></a>
8 <a href="https://github.com/hai2007/mock-servicer">
9 <img alt="GitHub repo stars" src="https://img.shields.io/github/stars/hai2007/mock-servicer?style=social">
10 </a>
11</p>
12
13## Issues
14使用的时候遇到任何问题或有好的建议,请点击进入[issue](https://github.com/hai2007/mock-servicer/issues)!
15
16> 基于此项目开发的[mock-manager](https://github.com/hai2007/mock-manager)是一个更简单的提供模拟数据的“新增”、“删除”、“更新”和“使用”于一体的项目,使用起来非常简单,推荐使用此项目哦~
17
18## 如何使用?
19
20```
21npm install mock-servicer
22```
23
24安装好了以后,引入并启动即可:
25
26```js
27const MockServicer = require('mock-servicer');
28
29MockServicer({
30
31 // 请求端口,可选,默认8080
32 port: 8080,
33
34 // 服务器根地址,可选,默认当前路径
35 contentBase:'./',
36
37 // mock数据缓存根地址,可选,默认当前路径
38 mockBase:'./mock',
39
40 // 404的提示界面,可选
41 template404:function(list){
42 // 返回当前路径下文件列表
43 return template;
44 },
45
46 // 自定义处理,可选
47 handler:function(options){
48
49 return {
50 code:"",// 响应码,可选,默认200
51 data:"",// 数据,必输
52 type:""// 数据类型,可选,默认application/json
53 };
54
55 },
56
57 // 请求拦截,可选,默认全部同意
58 intercept:function(options){
59 // 如果返回false,服务器会拒绝这次请求
60 return true|false;
61 }
62
63});
64```
65
66### 和服务器交互
67
68服务器启动成功以后,我们就可以通过请求的方式和数据服务器进行数据交互了。
69
70交互主要分为下列几种:
71
72- 新增或更新
73
74也就是在仓库中新增或修改已经有的模拟数据
75
76> 其中url用于指定模拟数据名称,method用于指定模拟数据请求方法,总之,url和method唯一确定了哪一方模拟数据(主要是考虑到实际项目的同一个url可能会使用不同的method实现不同的功能),下同。
77
78```js
79$.ajax({
80 url: 'http://127.0.0.1:8080/update?url=XXX&method=XXX',
81 type: "POST",
82 data: "需要保存的数据"
83});
84```
85
86- 删除
87
88删除已经存在的模拟数据
89
90```js
91$.ajax({
92 url: 'http://127.0.0.1:8080/delete?url=XXX&method=XXX'
93});
94```
95
96- 查询
97
98如果需要使用这份模拟数据,可以这样请求,返回的是mock运行后的结果而不是你新增的原始代码
99
100```js
101$.ajax({
102 url: 'http://127.0.0.1:8080/query?url=XXX&method=XXX'
103});
104```
105
106- Mock查询
107
108```查询```类似,只是这里直接使用```XXX```指定请求的模拟数据文件名称
109
110```js
111$.ajax({
112 url: 'http://127.0.0.1:8080/mock?XXX'
113});
114```
115
116- 原始查询
117
118有时候,我们可能希望开发一个平台来管理我们的模拟数据,这个方法就可以返回原始代码,方便我们在线维护(比如这个项目:[mock-manager](https://github.com/hai2007/mock-manager))
119
120```js
121$.ajax({
122 url: 'http://127.0.0.1:8080/oralquery?url=XXX&method=XXX'
123});
124```
125
126- 自定义处理
127
128对于一些特殊情况,我们无法考虑那么多,比如访问权限等,这时候就可以自定义处理规则了
129
130```js
131$.ajax({
132 url: 'http://127.0.0.1:8080/handler'
133});
134```
135
136当前,这意味着启动服务器时```handler```配置项是必须的。
137
138上面的```需要保存的数据```可以是一个普通的JSON字符串,比如:
139
140```js
141data: `{
142 "key1": "value1",
143 "key2": "value2",
144 "key3": "value3"
145}`
146```
147
148或者使用mock,比如:
149
150```js
151data: `Mock.mock({
152// 属性 list 的值是一个数组,其中含有 1 到 10 个元素
153 'list|1-10': [{
154 // 属性 id 是一个自增数,起始值为 1,每次增 1
155 'id|+1': 1
156 }]
157})`
158```
159
160### 作为普通的数据服务器
161
162除了上面特殊情况的交互外,你还可以直接访问位于```服务器根地址 contentBase```下的文件。
163
164## 命令行启动
165
166除了作为一个node包使用外,还可以在安装以后使用命令行启动:
167
168```bash
169mock-servicer --config ./mock-servicer.config.js
170```
171
172需要指定一个配置文件用来规定如何启动,配置文件格式如下:
173
174```js
175// mock-servicer.config.js
176module.exports = {
177
178 port: 8080,
179 // 和直接作为包使用的时候可配置参数的一致的
180
181};
182```
183
184开源协议
185---------------------------------------
186[MIT](https://github.com/hai2007/mock-servicer/blob/master/LICENSE)
187
188Copyright (c) 2021-2022 [hai2007](https://hai2007.gitee.io/sweethome/) 走一步,再走一步。