首页 > 编程语言 >web前端之node读取文件夹名称及html文件的标题、文件系统、路径处理、模块、正则、isDirectory、statSync、readFile、require、filter、throw、exec

web前端之node读取文件夹名称及html文件的标题、文件系统、路径处理、模块、正则、isDirectory、statSync、readFile、require、filter、throw、exec

时间:2024-03-23 21:59:23浏览次数:26  
标签:node web fs const 读取 err html 文件夹 throw

MENU


代码

const fs = require('fs');
const path = require('path');
// 文件夹路径
// C:\mssj\web\web-case\case\nodeJs\index.js
// C:\mssj\web\web-case\case\nodeJs\index.html
// C:\mssj\web\web-case\case\ajaxProgressMonitoring\index.html
const folderPath = '../../case';

// 读取文件夹中的内容
fs.readdir(folderPath, (err, files) => {
    if (err) throw new Error(JSON.stringify(err));

    // 过滤出文件夹
    let subfolders = files.filter(file => fs.statSync(path.join(folderPath, file)).isDirectory());

    // 输出子文件夹名称
    subfolders.forEach(_FN => {
        const filePath = `../${_FN}/index.html`;

        fs.readFile(filePath, 'utf8', (err, data) => {
            if (err) throw new Error(JSON.stringify(err));

            const titleRegex = /<title>(.*?)<\/title>/gi;
            const matches = titleRegex.exec(data);

            if (matches && matches.length > 1) {
                const title = matches[1];

                console.log(`| ${_FN} | ${title} |`);
            } else {
                throw new Error('Title tag not found in the HTML file.');
            }
        });
    });
});

解析

这段代码是一个Node.js脚本,用于读取指定文件夹中的内容,过滤出其中的子文件夹,并读取每个子文件夹中的index.html文件,从中提取html文件标题(title)信息,并输出到控制台。


01、const fs = require('fs');const path = require('path');两行代码引入Node.js内置的文件系统模块fs和路径处理模块path。
02、const folderPath = '../../case';定义要读取的文件夹路径。
03、fs.readdir(folderPath, (err, files) => { ... });使用fs模块中的readdir函数读取指定路径的文件夹内容。这个函数接受一个回调函数作为参数,回调函数有两个参数,可能出现的错误err和读取到的文件列表files。
04、if (err) throw new Error(JSON.stringify(err));如果在读取文件夹时发生了错误,则抛出错误并终止程序执行。
05、let subfolders = files.filter(file => fs.statSync(path.join(folderPath, file)).isDirectory());通过使用filter方法筛选出文件夹。这里使用了fs.statSync来同步获取文件信息,isDirectory()用于判断是否是文件夹。
06、subfolders.forEach(_FN => { ... });对筛选出的文件夹列表进行遍历。
07、const filePath = ../${_FN}/index.html;构建index.html文件的路径。
08、fs.readFile(filePath, 'utf8', (err, data) => { ... });使用fs模块的readFile函数读取index.html文件。回调函数接受两个参数,可能出现的错误err和读取到的文件内容data。
09、const titleRegex = /<title>(.*?)<\/title>/gi;定义了一个正则表达式,用于匹配HTML文件中的标题title标签。
10、const matches = titleRegex.exec(data);使用正则表达式在HTML文件内容中查找匹配的标题标签。
11、if (matches && matches.length > 1) { ... }如果匹配到了标题标签,并且匹配结果的长度大于1(即匹配到了标题内容),则执行const title = matches[1];来获取匹配到的标题内容。
12、console.log(| ${_FN} | ${title} |);将文件夹名称和对应的标题内容输出到控制台。
13、else { throw new Error('Title tag not found in the HTML file.'); }如果在HTML文件中未找到标题标签,则抛出错误并终止程序执行。

标签:node,web,fs,const,读取,err,html,文件夹,throw
From: https://blog.csdn.net/weixin_51157081/article/details/115033504

相关文章

  • WebSocket
    **WebSocket是一种在单个TCP连接上进行全双工通信的协议,它允许浏览器和服务器之间进行实时双向交互**。这项技术是HTML5的一部分,它在现代web开发中扮演着重要的角色。以下是关于WebSocket的一些详细信息:1.**全双工通信**:与传统的HTTP请求不同,WebSocket提供了一个持久的连接,通过......
  • nodejs学习
    什么是nodejs就是一个基于chormeV8引擎的JavaScript运行环境,是一个用于后端的运行环境nodejs中的运行环境分为两部分,分别是V8引擎和内置Api,前者用于解析js,后者用于被js调用终端的概念 虽然用的很多,但一讨论他的概念,我倒是有点说不上来:终端,是专门为开发人员设计的,用于实现人......
  • Ajax、JSON、响应式设计和Node.js
    Ajax、JSON、响应式设计和Node.js股票搜索(AJAX/JON/HTML5/Bootstrap/Angular/Node.js/CloudExercise)1.目标●熟悉AJAX和JSON技术●在客户端使用HTML5、Bootstrap和Angular的组合●在服务器端使用Node.js●熟悉Bootstrap,使用响应式设计增强用户体验●亲身体验云服务托......
  • [nodejs] pm2 : nodejs 的进程管理工具
    0pm2概述0.1序0.2pm2简述PM2是一款非常优秀的Node进程管理工具,它有着丰富的特性:能够充分利用多核CPU且能够负载均衡、能够帮助应用在崩溃后、指定时间(clustermodel)和超出最大内存限制等情况下实现自动重启。PM2是开源的基于Nodejs的应用进程管理器,包括守护进......
  • Web漏洞--数据库注入
    数据库注入Access、mysql、mssql、mongDB、postgresql、sqlite、oracle、sybase等#上节课JSON注入案例分析天池大数据众智平台-阿里云天池所以json注入时要在1、2、3上面去注入#简要学习各种数据库的注入特点数据库架构组成,数据库高权限操作Access是低等级的数据库,依......
  • JavaWeb学习笔记——第二天
    JavaScript什么是JavaScriptJavaScript(简称:JS)是一门跨平台、面向对象的脚本语言。是用来控制网页行为的,它能使网页可交互。JavaScript和Java是完全不同的语言,不论是概念还是设计都不一样。但是基础语法类似。JavaScript在1995年由BrendanEich发明,并于1997年成为......
  • 文件上传一-WEB攻防-PHP应用&文件上传&函数缺陷&条件竞争&二次渲染&黑白名单&JS绕过9
    演示案例:PHP-原生态-文件上传-前后端验证PHP-原生态-文件上传-类型文件头验证PHP-原生态-文件上传-后缀黑白名单验证PHP-原生态-文件上传-解析配置&二次渲染PHP-原生态-文件上传-逻辑缺陷&函数缺陷#学习前必读:1、课前一定要明白:无文件解析安全问题上,格式解析是一......
  • node.js是什么怎么用常用方法
    什么是node.jsNode.js是一个基于ChromeV8JavaScript引擎的服务器端运行环境。它允许使用JavaScript来开发高性能的网络应用程序。Node.js采用事件驱动、非阻塞式I/O模型,使其能够处理大量并发请求而不会出现阻塞。Node.js最初是由RyanDahl于2009年创建的,旨在使JavaScrip......
  • 禁欲28天!一宅男居然肝出如此详细Web安全学习笔记,学妹看完直接抽搐了!
    1.1.Web技术演化1.1.1.简单网站1.1.1.1.静态页面Web技术在最初阶段,网站的主要内容是静态的,大多站点托管在ISP上,由文字和图片组成,制作和表现形式也是以表格为主。当时的用户行为也非常简单,基本只是浏览网页。1.1.1.2.多媒体阶段随着技术的不断发展,音频、视频、Flas......
  • web CSS笔记
    CSS(CascadingStyleSheets)美化样式CSS通常称为CSS样式表或层叠样式表(级联样式表),主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局等外观显示样式。CSS以HTML为基础,提供了丰富的功能,如字体、颜色、背景的控制及整......