docs: function generateRouteConfig(mockConfig) {
      var routeConfig = {};
  
      var apiMockConifg = mockConfig.api;
      for (var routeKey in apiMockConifg) {
          var mock = apiMockConifg[routeKey];
          if (!mock) {
              console.warn(routeKey + ' is ' + mock);
              continue;
          }
  
          if (mock.disabled) {
              console.info(routeKey + ' disabled');
          } else {
              // 注意要使用闭包固定住 apiMockConifg 中的数据
              routeConfig[routeKey] = (function(mock) {
                  if (typeof mock === 'function') { // 完全自定义处理 mock 请求
                      return function(request, response, next) {
                          var result = mock(request, response, next);
                          // 如果函数返回对象, 则会走原有的发送 mock 数据的逻辑
                          // 即可以实现动态地组装 mock 数据
                          if (result) {
                              sendMockData(request, response, result);
                          }
                      };
                  } else if (mock.proxy) { // 代理接口
                      return function(request, response, next) {
                          // 必须每个 Mock 请求都使用一个新的 proxy
                          // 不然其他 mock 配置的 proxy 选项会影响到整个 proxy 实例
                          var proxy = httpProxy.createProxyServer({
                              // changes the host header to the target URL
                              changeOrigin: true
                          });
  
                          var proxyOption = typeof mock.proxy == 'string' ? {
                              target: mock.proxy
                          } : mock.proxy;
  
                          // 使用 http-proxy 来实现代理功能,
                          // 也可以使用 axio 来代理请求
                          proxy.web(request, response, proxyOption, function(error) {
                              response.send(error);
                          });
                      }
                  } else { // Mock 接口
                      return function(request, response, next) {
                          validateRequest(request, response, mock.request, function() {
                              sendMockData(request, response, mock.response);
                          });
                      };
                  }
              })(mock);
  
              // addOptionRoute(routeConfig, routeKey);
          }
      }
  
      return routeConfig;
  }