From cd74ce8521c63b2e06ac8247b64a22d3e9c941c3 Mon Sep 17 00:00:00 2001 From: qiqixiong <1016160938@qq.com> Date: Wed, 28 Sep 2022 13:40:28 +0800 Subject: [PATCH] mock --- .eslintignore | 3 ++- .prettierignore | 1 + mock/server.js | 24 +++++++++++++++++ mock/user/index.js | 27 +++++++++++++++++++ package-lock.json | 66 +++++++++++++++++++++++++++++++--------------- package.json | 7 +++++ src/setupProxy.js | 11 ++++++++ 7 files changed, 117 insertions(+), 22 deletions(-) create mode 100644 mock/server.js create mode 100644 mock/user/index.js create mode 100644 src/setupProxy.js diff --git a/.eslintignore b/.eslintignore index de2a026..94eedbf 100644 --- a/.eslintignore +++ b/.eslintignore @@ -3,4 +3,5 @@ /scripts /node_modules /build -/src/react-app-env.d.ts \ No newline at end of file +/src/react-app-env.d.ts +/mock/* diff --git a/.prettierignore b/.prettierignore index 81b30fb..58fbba1 100644 --- a/.prettierignore +++ b/.prettierignore @@ -7,3 +7,4 @@ README.md package.json yarn.lock /src/react-app-env.d.ts +/mock diff --git a/mock/server.js b/mock/server.js new file mode 100644 index 0000000..049ceb3 --- /dev/null +++ b/mock/server.js @@ -0,0 +1,24 @@ +const express = require("express") +const app = express(); +const bodyParser = require('body-parser'); + +app.use(bodyParser.json()); +app.use(bodyParser.urlencoded({ + extended: true +})); + +const router = express.Router(); + +app.post('/', function(req, res) { + res.send('this is my mock demo'); +}); + +app.get('/', function(req, res) { + res.send('this is my mock get demo'); +}); + +router.use("/user/", require('./user/index')); + +app.use("/api",router) + +app.listen(3080) diff --git a/mock/user/index.js b/mock/user/index.js new file mode 100644 index 0000000..497b4bf --- /dev/null +++ b/mock/user/index.js @@ -0,0 +1,27 @@ +const Mock = require("mockjs") +const express = require("express") +const router = express.Router(); + +router.use("/getUser",function (req, res) { + //调用mock方法模拟数据 + const data = Mock.mock({ + 'list|1-10': [ + { + 'qq_number|+1':"1302507089", + 'operator_name': "test", + 'wechat_number': "zixue0505", + 'year|+1': 2019 + } + ], + config:{ + page: 1, + page_size: 10, + total_num: 4, + total_page: 1 + } + } + ); + return res.json(data); +}) + +module.exports = router; diff --git a/package-lock.json b/package-lock.json index 75bf41b..813593a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2844,7 +2844,7 @@ }, "@types/express": { "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "resolved": "https://registry.npmmirror.com/@types/express/-/express-4.17.14.tgz", "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", "dev": true, "requires": { @@ -3815,8 +3815,7 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "at-least-node": { "version": "1.0.0", @@ -3856,6 +3855,27 @@ "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==", "dev": true }, + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmmirror.com/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + }, + "dependencies": { + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, "axobject-query": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", @@ -4156,7 +4176,7 @@ }, "body-parser": { "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.0.tgz", "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", "dev": true, "requires": { @@ -4176,13 +4196,13 @@ "dependencies": { "bytes": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { @@ -4191,19 +4211,19 @@ }, "depd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "qs": { "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.10.3.tgz", "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", "dev": true, "requires": { @@ -4596,7 +4616,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -5329,8 +5348,7 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" }, "delegates": { "version": "1.0.0", @@ -6501,7 +6519,7 @@ }, "express": { "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "resolved": "https://registry.npmmirror.com/express/-/express-4.18.1.tgz", "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", "dev": true, "requires": { @@ -6799,8 +6817,7 @@ "follow-redirects": { "version": "1.15.2", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "dev": true + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" }, "forever-agent": { "version": "0.6.1", @@ -7560,7 +7577,7 @@ }, "http-proxy-middleware": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", "dev": true, "requires": { @@ -10236,14 +10253,12 @@ "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, "mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "requires": { "mime-db": "1.52.0" } @@ -10418,6 +10433,15 @@ "minimist": "^1.2.6" } }, + "mockjs": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/mockjs/-/mockjs-1.1.0.tgz", + "integrity": "sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==", + "dev": true, + "requires": { + "commander": "*" + } + }, "moment": { "version": "2.29.4", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", @@ -12206,7 +12230,7 @@ }, "raw-body": { "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.1.tgz", "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dev": true, "requires": { @@ -12218,7 +12242,7 @@ "dependencies": { "bytes": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true } diff --git a/package.json b/package.json index bb6a900..ad7abdc 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "scripts": { "analyze": "source-map-explorer build/static/js/main.*", "dev": "node scripts/start.js", + "mock": "node ./mock/server.js", "build": "node scripts/build.js", "test": "node scripts/test.js", "lint": "npm run lint:js && npm run lint:style", @@ -94,6 +95,7 @@ }, "dependencies": { "antd": "^4.23.2", + "axios": "^0.27.2", "classname": "0.0.0", "lodash": "^4.17.21", "react-router-dom": "^6.4.0", @@ -106,6 +108,7 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", + "@types/express": "^4.17.14", "@types/jest": "^27.5.2", "@types/lodash": "^4.14.185", "@types/node": "^16.11.59", @@ -118,6 +121,7 @@ "babel-plugin-named-asset-import": "^0.3.8", "babel-preset-react-app": "^10.0.1", "bfj": "^7.0.2", + "body-parser": "^1.20.0", "browserslist": "^4.18.1", "camelcase": "^6.2.1", "case-sensitive-paths-webpack-plugin": "^2.4.0", @@ -134,9 +138,11 @@ "eslint-plugin-react": "^7.31.8", "eslint-plugin-react-hooks": "^4.6.0", "eslint-webpack-plugin": "^3.1.1", + "express": "^4.18.1", "file-loader": "^6.2.0", "fs-extra": "^10.0.0", "html-webpack-plugin": "^5.5.0", + "http-proxy-middleware": "^2.0.6", "identity-obj-proxy": "^3.0.0", "jest": "^27.4.3", "jest-resolve": "^27.4.2", @@ -144,6 +150,7 @@ "less": "^4.1.3", "less-loader": "^11.0.0", "mini-css-extract-plugin": "^2.4.5", + "mockjs": "^1.1.0", "node-sass": "^7.0.3", "postcss": "^8.4.4", "postcss-flexbugs-fixes": "^5.0.2", diff --git a/src/setupProxy.js b/src/setupProxy.js new file mode 100644 index 0000000..cb615a2 --- /dev/null +++ b/src/setupProxy.js @@ -0,0 +1,11 @@ +const { createProxyMiddleware } = require('http-proxy-middleware'); + +module.exports = function(app) { + app.use( + '/api', + createProxyMiddleware({ + target: 'http://localhost:3080', + changeOrigin: true, + }) + ); +}; -- Gitee