Skip to content

Commit c5c179c

Browse files
committed
fix: proxy
1 parent 54c73c2 commit c5c179c

File tree

6 files changed

+45
-14
lines changed

6 files changed

+45
-14
lines changed

README.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,4 +131,23 @@ swagger文档生成后,只需要拿到当前swagger的json文件,写入配
131131
docker run -d -p 9000:9000 -v /data/api/mock:/app/mock -v data/api/mock.config.json:/app/mock.config.json lvpf/dev-mock-cli
132132
```
133133

134-
只需要更新mock文件夹下的json数据即可操作API
134+
只需要更新mock文件夹下的json数据即可操作API
135+
136+
## 更新记录
137+
138+
- 20241015
139+
- 监听mock目录下文件新增/删除,重启服务
140+
- 增加proxy代理请求日志
141+
142+
143+
## 待办&问题
144+
145+
- proxy代理请求超时
146+
- 跨域配置
147+
- 自动生成mock.config.json文件
148+
- 返回参数处理
149+
- 路由参数变量匹配
150+
- 请求参数匹配
151+
- 判断如果没有mock.config.json,不要报错
152+
- 操作视频
153+
- 删除配置文件中swaggerJSON中的type字段

command/middleware.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { setHeader } from '../utils/index.js';
33
export const cors = (req, res, next) => {
44
res.header('Access-Control-Allow-Origin', '*'); //访问控制允许来源:所有
55
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept'); //访问控制允许报头 X-Requested-With: xhr请求
6-
res.header('Access-Control-Allow-Metheds', 'PUT, POST, GET, DELETE, OPTIONS'); //访问控制允许方法
6+
res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS'); //访问控制允许方法
77
res.header('X-Powered-By', 'nodejs'); //自定义头信息,表示服务端用nodejs
88
res.header('Content-Type', 'application/json;charset=utf-8');
99
next();

command/restful.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ const restful = async ({ app, filePath, config }) => {
2323
const proxyMiddleware = createProxyMiddleware({
2424
target: proxyApiUrl,
2525
changeOrigin: true,
26+
logLevel: 'debug',
27+
onProxyRes(proxyRes, req, res) {
28+
console.log(`[Proxy Response] Status: ${proxyRes.statusCode}, Path: ${req.path}`);
29+
}
2630
})
2731
app.use('*', proxyMiddleware);
2832
}

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
},
2020
"scripts": {
2121
"test": "echo \"Error: no test specified\" && exit 1",
22-
"start": "npx nodemon ./bin/index.js mock",
22+
"start": "npx nodemon --watch ./mock --exec 'node ./bin/index.js mock'",
2323
"prettier": "prettier -w .",
2424
"publish:patch": "npm version patch && npm publish --registry=https://registry.npmjs.org"
2525
},
@@ -28,6 +28,7 @@
2828
"dependencies": {
2929
"axios": "^1.7.7",
3030
"chalk": "4.1.2",
31+
"cors": "^2.8.5",
3132
"express": "^4.19.2",
3233
"get-port": "^7.1.0",
3334
"http-proxy-middleware": "^2.0.6",

server.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import express from 'express';
22
import path from 'path';
3+
import cors from 'cors';
34

4-
import { cors, timeoutSetting, actionTransfer } from './command/middleware.js';
5+
import { timeoutSetting, actionTransfer } from './command/middleware.js';
56
import restful from './command/restful.js';
67
import action from './command/action.js';
78
import { ConfirmPort } from './utils/prompt.js';
@@ -33,16 +34,16 @@ class MockServer {
3334
}
3435

3536
const app = express();
36-
app.use(express.urlencoded({ extended: true }));
37+
app.use(express.urlencoded({ extended: true, limit: '50mb' }));
3738
app.use(express.json({ limit: '50mb' }));
3839
app.use(express.static(this.staticPath));
3940

4041
app.get('/monto/docs', (req, res) => res.sendFile(path.join(this.staticPath, 'index.html')));
4142
app.post('/submit', handleFormSubmission);
4243

4344
// 通用中间件
44-
app.all('*', cors);
45-
app.all('*', timeoutSetting);
45+
app.use(cors());
46+
app.use('*', timeoutSetting);
4647
if (this.type === 'action') {
4748
app.all('*', actionTransfer);
4849
}

yarn.lock

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1750,14 +1750,15 @@ core-js-compat@^3.36.1, core-js-compat@^3.37.1:
17501750
dependencies:
17511751
browserslist "^4.23.0"
17521752

1753-
cross-env@^7.0.3:
1754-
version "7.0.3"
1755-
resolved "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf"
1756-
integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==
1753+
cors@^2.8.5:
1754+
version "2.8.5"
1755+
resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29"
1756+
integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==
17571757
dependencies:
1758-
cross-spawn "^7.0.1"
1758+
object-assign "^4"
1759+
vary "^1"
17591760

1760-
cross-spawn@^7.0.1, cross-spawn@^7.0.2:
1761+
cross-spawn@^7.0.2:
17611762
version "7.0.3"
17621763
resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
17631764
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
@@ -2693,6 +2694,11 @@ normalize-path@^3.0.0, normalize-path@~3.0.0:
26932694
resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
26942695
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
26952696

2697+
object-assign@^4:
2698+
version "4.1.1"
2699+
resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
2700+
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
2701+
26962702
object-inspect@^1.9.0:
26972703
version "1.12.2"
26982704
resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea"
@@ -3308,7 +3314,7 @@ validator@^13.7.0:
33083314
resolved "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz#7d78e76ba85504da3fee4fd1922b385914d4b35f"
33093315
integrity sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==
33103316

3311-
vary@~1.1.2:
3317+
vary@^1, vary@~1.1.2:
33123318
version "1.1.2"
33133319
resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
33143320
integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==

0 commit comments

Comments
 (0)