app.js 800 B

123456789101112131415161718192021222324252627282930313233
  1. 'use strict';
  2. const path = require('path');
  3. const Router = require('./lib/router');
  4. module.exports = app => {
  5. const router = new Router(app);
  6. /**
  7. * get sub router
  8. *
  9. * @method Router#namespace
  10. * @param {String} prefix - sub router prefix
  11. * @param {...Function} [middlewares] - optional middlewares
  12. * @return {Router} Return sub router with special prefix
  13. */
  14. app.router.namespace = (...args) => {
  15. return router.namespace(...args);
  16. };
  17. // patch loadRouter
  18. // load sub routers first
  19. const loadRouter = app.loader.loadRouter;
  20. app.loader.loadRouter = function() {
  21. new app.loader.FileLoader({
  22. directory: path.join(app.baseDir, 'app/router'),
  23. target: {},
  24. inject: app,
  25. call: true,
  26. }).load();
  27. loadRouter.call(app.loader);
  28. };
  29. };