routes.js 804 B

123456789101112131415161718192021222324252627282930
  1. /*
  2. * @Description:
  3. * @Author: sungw
  4. * @Date: 2019-07-11 11:35:32
  5. * @LastEditors: sungw
  6. * @LastEditTime: 2019-11-18 13:53:37
  7. */
  8. const fs = require('fs');
  9. const list = [];
  10. const rootDir = __dirname;
  11. const reg = /.js$/;
  12. function registerRouters(path) {
  13. const files = fs.readdirSync(`${rootDir}${path}`);
  14. files.forEach(file => {
  15. if (reg.test(file) && file !== 'routes.js') {
  16. file = file.replace(/\.js$/, '');
  17. const obj = {
  18. path: file === '_index' ? path : `${path}${file}`,
  19. // eslint-disable-next-line global-require
  20. router: require(`.${path}${file}`),
  21. };
  22. list.push(obj);
  23. } else if (fs.statSync(`${rootDir}${path}${file}`).isDirectory()) {
  24. registerRouters(`${path}${file}/`);
  25. }
  26. });
  27. }
  28. registerRouters('/');
  29. module.exports = list;