`

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

相关推荐

    nodejs入门3路由1

    本文将深入探讨在"nodejs入门3路由1"中的知识点,包括路由的实现、请求处理以及模块之间的协作。 首先,我们来看`router.js`模块,这是路由的核心。`route`函数接收两个参数:`handle`对象和`pathname`。`handle`...

    这是Nodejs的一个基于正则表达式实现的快速URL路由类

    在快速URL路由中,正则表达式用于创建动态路由,使我们能够处理包含变量或动态参数的URL。例如,`/users/:userId`这样的路由,其中`:userId`可以匹配任何字符序列,相当于一个动态占位符。在实际应用中,这使得我们...

    nodejs中实现路由功能

    Node.js实现路由功能是一个非常重要的技术点,尤其对于Web开发人员来说。Node.js允许我们使用JavaScript来开发服务器端应用程序,它的非阻塞I/O操作和事件驱动的特性使得它非常适合构建高效的网络应用程序。 在Node...

    NodeJS学习笔记和代码

    1. **异步编程**:NodeJS的回调函数、Promise和async/await,是处理异步操作的关键工具,避免了回调地狱。 2. **npm**:NodeJS的包管理器,用于安装、管理和分享依赖库,是NodeJS生态的重要组成部分。 3. **流...

    nodejs之请求路由概述

    我们要为路由提供请求的URL和其他需要的GET及POST参数,随后路由需要根据这些数据来执行相应的代码。我们需要的所有数据都会包含在request对象中,该对象作为onRequest()回调函数的第一个参数传递。为了解析这些数据...

    NodeJS开发指南_nodejs开发指南_

    NodeJS的`fs`模块提供了丰富的文件系统API,可以进行读写文件、创建目录等操作。例如,读取文件内容: ```javascript const fs = require('fs'); fs.readFile('example.txt', 'utf8', (err, data) =&gt; { if (err) ...

    NodeJS整理手册文档

    1. 文件系统(fs):NodeJS内置的fs模块提供了操作文件和目录的API,如读取、写入、创建、删除等。 2. 网络模块(http/https):用于创建HTTP和HTTPS服务器,支持监听客户端请求并发送响应。 3. URL模块:解析和构建...

    07Nodejs WEB服务器 静态文件托管、 GET POST路由 EJS模板引擎2

    "Nodejs WEB 服务器静态文件托管、GET POST 路由 EJS 模板引擎" NodeJs WEB 服务器静态文件托管是指将静态文件托管在 NodeJs 服务器上,使得客户端可以直接访问这些文件。静态文件托管可以提高网站的访问速度和...

    nodejs路由

    ### Node.js路由功能详解 在Node.js开发过程中,路由是一个非常关键的概念,它负责将不同的HTTP请求(如GET、POST等)映射到相应的处理函数上。本篇文档旨在通过一个具体的示例来深入理解Node.js中的路由实现原理...

    nodeJS实现路由功能实例代码

    NodeJS(通常称为Node)是一个基于...对于希望深入学习NodeJS路由实现的开发者来说,掌握这种基本的路由处理方法是非常有价值的,因为它可以帮助我们更好地理解框架背后的工作原理,并在需要时提供更高级的自定义能力。

    08Nodejs 路由封装 封装仿照express的路由3

    `handle`方法遍历数组,根据请求的方法和URL找到匹配的路由并执行相应的处理函数。如果没有找到匹配的路由,就返回404错误。 在实际应用中,你可以将这个`Router`类引入并实例化,然后在主应用文件中使用它: ```...

    NodeJS8 从入门到精通(视频教程)

    07-开始着手搭建集前后端一体的NodeJS Web应用mp408-深入NodeJS8中的路由.mp4 09-NodeJS8黄金搭档: mongodb数据库详解 01.mp410-NodeJS8董金搭档: mongodb数据库详解 02.mp411-NodeJS8操作mongodb,mp4 12-NodeJS8...

    Node.js-微型NodeJS接口配置转发工具

    在现代Web开发中,接口转发工具扮演着重要角色,它允许开发者将来自一个系统的请求路由到另一个系统,以实现数据交互或服务集成。这种工具通常用于API管理、微服务架构或者测试环境中,便于模拟不同服务间的通信。 ...

    NodeJS扩展合集

    在NodeJS扩展合集中,可能还包括其他的实用工具和库,比如日志管理工具 Winston、错误处理中间件 Express-Error、自动化任务工具 Gulp 或 Webpack,以及测试框架 Mocha 和 Chai 等。这些工具和框架能够帮助提升开发...

    express4.x 重写 nodejs开发指南博客实例

    这个是把nodejs开发指南中的博客实例,使用最新的nodejs 与 express实现,完成了书中的最简单的功能。

    基于nodejs+mysql实现的仿京东商城项目

    基于nodejs+mysql实现的仿京东商城app项目 前端 页面结构(H5,CSS3,原生JS) 框架(基于Vue脚手架:vue-cli)进行搭建 数据请求处理框架(Axios) Vue-Router进行路由处理 Vue-LazyLoad进行图片赖加载 服务端 选用NodeJs...

    nodejs实战pdf+源码_nodejs_nodejs实战pdf+源码_

    2. **模块系统**:Node.js的模块系统是其强大之处,书中会详细阐述如何使用`require`加载模块,以及如何设计和发布自己的npm模块。 3. **异步编程**:Node.js的核心特性之一就是其异步编程模型。书中会深入讨论回调...

    NodeJS入门项目案例(Express+Mysql)

    NodeJS入门项目案例(Express+Mysql)是一个适合初学者的教程,旨在引导你进入Node.js服务端开发的世界。在这个项目中,我们将使用Express框架,一个简洁且强大的Web应用开发框架,以及Mysql,一个流行的开源关系型...

Global site tag (gtag.js) - Google Analytics