Source: router/bothRouter.js

  1. 'use strict';
  2. /**
  3. * 加载动态静态路由
  4. * @module router/bothRouter
  5. *
  6. * @param {object} opt 启动参数对象
  7. * @param {object} opt.basic 动静态路由相同配置
  8. * @param {function} opt.basic.getRequestIP 获取请求地址方法,返回ip或host用于发送后端请求,参数 ctx,注意为 generator 函数
  9. *
  10. * @param {object} opt.dynamic 动态路由配置
  11. * @param {object} opt.dynamic.routerMap 动态routerMap
  12. * @param {function} opt.dynamic.getHeader 处理请求header方法,返回header用于发送后端请求,参数 原header,ctx
  13. * @param {function} opt.dynamic.getRenderData 处理渲染data方法,返回data用于渲染,参数 原data,ctx
  14. *
  15. * @param {object} opt.static 静态路由配置
  16. * @param {boolean} opt.static.staticServerOn 是否开启静态化
  17. * @param {string} opt.static.staticFileRoot 静态化文件存放根目录
  18. * @param {string} opt.static.staticPath 静态化接口路径
  19. * @param {object} opt.static.staticRouterMap 静态化routerMap
  20. * @param {string} opt.static.dynamicStaticPath 新静态化接口路径
  21. * @param {object} opt.static.dynamicRouterMap 动态routerMap
  22. * @param {function} opt.static.getHeader 处理请求header方法,返回header用于发送后端请求,参数 原header,ctx
  23. * @param {function} opt.static.getRenderData 处理渲染data方法,返回data用于渲染,参数 原data,ctx
  24. */
  25. const router = require('koa-router')();
  26. module.exports = function addTwoRouters(opt) {
  27. // 启用模版渲染路由
  28. const dynamicRouter = require('./dynamicRouter.js')(Object.assign({}, opt.basic, opt.dynamic));
  29. // 启用静态化路由
  30. const staticRouter = require('./staticRouter.js')(Object.assign({}, opt.basic, opt.static));
  31. return router.use(dynamicRouter.routes()).use(staticRouter.routes());
  32. };