工具来源:
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/]),即可动态加载路由文件了;
工具源代码:
/*** 动态遍历目录加载路由工具* 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;

转载于:https://www.cnblogs.com/bling/p/5541680.html

Nodejs动态加载路由,Nodejs遍历目录,Nodejs路由工具相关推荐

  1. nodejs动态加载路由

    Nodejs动态加载路由,Nodejs遍历目录,Nodejs路由工具 工具来源: Nodejs需要手动加载路由文件,如果一个个添加,项目逐渐扩大,比较麻烦. 尤其在项目route目录下,增加模块文件夹 ...

  2. C#动态加载dll,dll目录指定

    <?xml version="1.0"?> <configuration> <startup> <supportedRuntime ver ...

  3. Flask+jQuery:AJAX技术动态加载网页

    hello,大家好,我是wangzirui32,今天我们来学习如何使用jQuery实现AJAX动态加载网页. 学习目录 1. 准备工作 1.1 搭建测试网站 1.2 数据文件 1.3 网页模板 1.4 ...

  4. c# winform程序调用托管dll(c#的dll),使用添加引用和动态加载dll

    1. dll要强名. 2. winform程序要添加引用dll(自动获得dll的函数调用定义),"复制本地"属性设false,因为下一步会动态加载dll,所以"复制本地& ...

  5. python爬虫实例解析-Python(爬虫)- 动态加载案例分析

    requests """ 基于网络请求的模块. 环境的安装:pip install requests 作用:模拟浏览器发起请求 分析requests的编码流程: 1.指定 ...

  6. 教你用Python爬取动态加载的数据

    例子1:爬取豆瓣电影中的电影详情数据 url:https://movie.douban.com/ 1.什么是动态加载的数据: 我们通过requests模块进行数据爬取无法每次都是可见即可得,有些数据是 ...

  7. vue系统权限(动态加载路由方式)

    目录 1.注册vue-router 2.声明 默认路由 和权限路由 3.用vuex实现全局登录.退出登录等方法 4.用vuex模块单独写权限路由的判断 5.监听路由跳转实现动态加载权限菜单 需要用到动 ...

  8. reactjs通过lazy函数配合import函数动态加载路由组件

    路由组件的lazyLoad //1.通过React的lazy函数配合import()函数动态加载路由组件 ===> 路由组件代码会被分开打包const Login = lazy(()=>i ...

  9. npm : 无法加载文件 D:\Program Files\nodejs\node_global\npm.ps1,因为在此系统上禁止运行脚本。

    npm : 无法加载文件 D:\Program Files\nodejs\node_global\npm.ps1,因为在此系统上禁止运行脚本.有关详细信息,请参阅 https: /go.microso ...

  10. vue : 无法加载文件 D:\Program Files\nodejs\node_global\vue.ps1

    vue : 无法加载文件 D:\Program Files\nodejs\node_global\vue.ps1 当我在VS code终端执行:vue create testapp,就报这个错误 解决 ...

最新文章

  1. ORA-00845 : MEMORY_TARGET not supported on this system(调大数据库内存无法启动)
  2. AndroidStudio(1 下载安装,环境搭建,使用设置)
  3. 数学表达式解析器简介
  4. vc6.0 简易的tcp网络讲解(二)
  5. Mysql性能调优工具Explain结合语句讲解
  6. code换取微信openid_关于PHP如何获取微信的openID教程
  7. Java面试题:kafka幂等性+事务
  8. 浅析低功耗广域网及在智慧城市中的应用
  9. 支持向量机在风控竞赛数据集上的应用
  10. Unity3D NGUI图文混排聊天表情
  11. react native 更改app名称和图标
  12. editormd html 转义,Markdown(editormd)语法解析成html(示例代码)
  13. 西电计算机科学与技术排名,西安电子科技大学王牌专业有哪些及专业排名
  14. 20170603学习笔记整理
  15. 卷积神经网络感受野的计算
  16. 嵌入式监控【v4l2采集-vpu编码-live555推流】
  17. 触摸屏中应用的电容式触摸芯片
  18. TB-RK1808M0最新固件烧录和驱动更新
  19. Redis高性能缓存数据库
  20. 【机器学习】Kmeans聚类(含代码)

热门文章

  1. Emulator: PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT,博主亲自验证有效
  2. python 与栈 入门
  3. SparkStreaming DStream入门及其算子应用
  4. appium相关记录
  5. Java之品优购课程讲义_day12(2)
  6. cPanel虚拟主机上运行Python的方法
  7. Linux系统 nginx伪静态配置及nginx重启
  8. 正确识别希捷Backup Plus新睿品1TB正品,杜绝奸商猖獗
  9. 第一天,搬家到博客园
  10. Flex动态创建多个曲线图+柱形图