Nodejs动态加载路由,Nodejs遍历目录,Nodejs路由工具
工具来源:
Nodejs需要手动加载路由文件,如果一个个添加,项目逐渐扩大,比较麻烦。
尤其在项目route目录下,增加模块文件夹的时候,引入路由更是麻烦。
因此写了一个Nodejs动态加载路由,Nodejs遍历目录,Nodejs路由工具,取名为route.js。
支持无限级别目录结构,自动递归引用。有任何更好的建议,欢迎随时留意交流。
使用方法:
1、文件:app.js同级目录增加route.js文件,复制下面贴出源代码;
2、引入:app.js中引入:var route = require('./route');
3、调用:在app变量初始化之后,在app.js中使用route.init(app,[可选参数,路由目录,默认为./routes/]),即可动态加载路由文件了;
工具源代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | /** * 动态遍历目录加载路由工具 * author: bling兴哥 */ var fs = require( "fs" ); // 动态路由 var loadRoute = { path : './routes/' , app : null , // 遍历目录 listDir : function (dir){ var fileList = fs.readdirSync(dir, 'utf-8' ); for ( var i=0;i<fileList.length;i++) { var stat = fs.lstatSync(dir + fileList[i]); // 是目录,需要继续 if (stat.isDirectory()) { this .listDir(dir + fileList[i] + '/' ); } else { this .loadRoute(dir + fileList[i]); } } }, // 加载路由 loadRoute : function (routeFile){ console.log(routeFile); var route = require(routeFile.substring(0,routeFile.lastIndexOf( '.' ))); // 在路由文件中定义了一个basePath变量,设置路由路径前缀 if (route.basePath){ this .app.use(route.basePath,route); } else { this .app.use(route); } }, // 初始化入口 init : function (app,path){ if (!app){ console.error( "系统主参数App未设置" ); return false ; } this .app = app; this .path = path?path: this .path; this .listDir( this .path); } }; module.exports = loadRoute; |
玩转JavaScript、Html、Css三大法宝
bling(兴哥)
bling(兴哥)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)