Browse Source

perf[Mock]: set responseFake to mock-server.js

https://github.com/PanJiaChen/vue-element-admin/pull/2966
潘嘉晨 5 years ago
parent
commit
d0518bce5b
2 changed files with 19 additions and 17 deletions
  1. 1 15
      mock/index.js
  2. 18 2
      mock/mock-server.js

+ 1 - 15
mock/index.js

@@ -50,18 +50,4 @@ export function mockXHR() {
50 50
   }
51 51
 }
52 52
 
53
-// for mock server
54
-const responseFake = (url, type, respond) => {
55
-  return {
56
-    url: new RegExp(`${process.env.VUE_APP_BASE_API}${url}`),
57
-    type: type || 'get',
58
-    response(req, res) {
59
-      console.log('request invoke:' + req.path)
60
-      res.json(Mock.mock(respond instanceof Function ? respond(req, res) : respond))
61
-    }
62
-  }
63
-}
64
-
65
-export default mocks.map(route => {
66
-  return responseFake(route.url, route.type, route.response)
67
-})
53
+export default mocks

+ 18 - 2
mock/mock-server.js

@@ -2,17 +2,21 @@ const chokidar = require('chokidar')
2 2
 const bodyParser = require('body-parser')
3 3
 const chalk = require('chalk')
4 4
 const path = require('path')
5
+const Mock = require('mockjs')
5 6
 
6 7
 const mockDir = path.join(process.cwd(), 'mock')
7 8
 
8 9
 function registerRoutes(app) {
9 10
   let mockLastIndex
10 11
   const { default: mocks } = require('./index.js')
11
-  for (const mock of mocks) {
12
+  const mocksForServer = mocks.map(route => {
13
+    return responseFake(route.url, route.type, route.response)
14
+  })
15
+  for (const mock of mocksForServer) {
12 16
     app[mock.type](mock.url, mock.response)
13 17
     mockLastIndex = app._router.stack.length
14 18
   }
15
-  const mockRoutesLength = Object.keys(mocks).length
19
+  const mockRoutesLength = Object.keys(mocksForServer).length
16 20
   return {
17 21
     mockRoutesLength: mockRoutesLength,
18 22
     mockStartIndex: mockLastIndex - mockRoutesLength
@@ -27,6 +31,18 @@ function unregisterRoutes() {
27 31
   })
28 32
 }
29 33
 
34
+// for mock server
35
+const responseFake = (url, type, respond) => {
36
+  return {
37
+    url: new RegExp(`${process.env.VUE_APP_BASE_API}${url}`),
38
+    type: type || 'get',
39
+    response(req, res) {
40
+      console.log('request invoke:' + req.path)
41
+      res.json(Mock.mock(respond instanceof Function ? respond(req, res) : respond))
42
+    }
43
+  }
44
+}
45
+
30 46
 module.exports = app => {
31 47
   // es6 polyfill
32 48
   require('@babel/register')