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 | ```
|
21 | npm install mock-servicer
|
22 | ```
|
23 |
|
24 | 安装好了以后,引入并启动即可:
|
25 |
|
26 | ```js
|
27 | const MockServicer = require('mock-servicer');
|
28 |
|
29 | MockServicer({
|
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
|
141 | data: `{
|
142 | "key1": "value1",
|
143 | "key2": "value2",
|
144 | "key3": "value3"
|
145 | }`
|
146 | ```
|
147 |
|
148 | 或者使用mock,比如:
|
149 |
|
150 | ```js
|
151 | data: `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
|
169 | mock-servicer --config ./mock-servicer.config.js
|
170 | ```
|
171 |
|
172 | 需要指定一个配置文件用来规定如何启动,配置文件格式如下:
|
173 |
|
174 | ```js
|
175 | // mock-servicer.config.js
|
176 | module.exports = {
|
177 |
|
178 | port: 8080,
|
179 | // 和直接作为包使用的时候可配置参数的一致的
|
180 |
|
181 | };
|
182 | ```
|
183 |
|
184 | 开源协议
|
185 | ---------------------------------------
|
186 | [MIT](https://github.com/hai2007/mock-servicer/blob/master/LICENSE)
|
187 |
|
188 | Copyright (c) 2021-2022 [hai2007](https://hai2007.gitee.io/sweethome/) 走一步,再走一步。
|