首页 > 编程语言 >Node.js 处理 File

Node.js 处理 File

时间:2023-02-13 19:13:07浏览次数:63  
标签:Node 文件 fs File js item 模块 path 目录

Node.js 处理 File

对于 file 的理解,此处

fs 模块

Node.js 提供了处理文件系统的内置模块fs 模块,该名称是 file system 的缩写

  • 内置意味着你无需从 npm 进行安装

  • 可以使用 fs 模块对文件和目录执行多种操作

  • fs 模块具有 promises 命名空间,该命名空间具有所有方法的 promise 版本

    这是使用 fs 模块的首选方法,它可避免回调发生混乱或避免阻止同步方法,让你可以使用 async

    const fs = require("fs").promises;
    
  • 对 fs 模块执行的大多数操作都有同步和异步选项

常规使用

列出目录中的内容

  • 可以使用 readdir 方法或 readdirasync 方法

    const items = await fs.readdir("stores");       // await 属于同步和异步编程的内容【建议自行查看】,stores 是路径【建议相对路径】
    console.log(items);                             // 列表形式输出目录中的内容,每个 item 是 Dirent 对象
    
  • 判断文件目录,使用 Dirent 对象具有 isFileisDirectory 方法

运用递归遍历目录树

/**
 * findFiles(folderName) 递归遍历目录树
 *  
 *  folderName 目录路径
*/
function findFiles(folderName) {

    const items = await fs.readdir(folderName, { withFileTypes: true });    // 获取目录中的元素

    // 用 forEach 遍历 items
    items.forEach((item) => {
        if (item.isDirectory()) {                       // item.isDirectory() 递归条件【出口】
        findFiles(`${folderName}/${item.name}`);        // 递归调用
        } else {
        console.log(`Found file: ${item.name} in folder: ${folderName}`);
        }
    });
}

创建文件和目录

可使用 fs 模块以编程方式创建、删除、复制、移动和操作系统上的文件和目录

  • 创建目录 mkdir 方法,注意如果尝试创建的目录已存在将引发错误
  • 创建文件使用 fs.writeFile() 方法来创建文件,如果此文件已存在则会将其覆盖

读写文件

  • 从文件读取数据 fs.readFile() 方法读取文件,返回对象是一个 Buffer 对象
  • 要将数据写入文件,请使用相同的 writeFile 方法,不同的是应传入要作为第三个参数写入的数据
  • 将数据追加到文件,可以将标志 a 传递到 writeFile 方法来执行此操作

分析文件中的数据,JavaScript 包含用于 JSON 文件的内置分析程序,JSON.parse() 方法可以实现此目的

// 在当前目录添加 totals.txt,每次使用追加 'Hello '
await fs.writeFile(
    path.join(__dirname, "totals.txt"),         // __dirname 一个全局常量,下面有简介
    'Hello ',
    { flag: "a" }
);

path 模块

在 Node.js 内置模块中 path 模块专用于处理路径

  • 拼接路径 path.join() 方法,意义增强移植性应对不同操作系统的目录分隔符
  • 确定文件扩展名 path.extname()
  • path.parse() 获取有关路径或文件的大多数所需信息,包含你所在的当前目录、文件的名称、文件扩展名,甚至是不带扩展名的文件名称

Node.js 内置常量

  • 确认当前目录完整路径通过内置常量 __dirname
  • 确认当前文件完整路径通过内置常量 __filename

标签:Node,文件,fs,File,js,item,模块,path,目录
From: https://www.cnblogs.com/shadow-/p/17117390.html

相关文章

  • 论.bashrc和.bash_profile的区别
    背景今天在使用堡垒机连接后端主机的时候发现无法使用xftp打开后端主机的/tmp目录,但是用ssh命令行登陆可以列出/tmp目录,折腾了快一天了才发现问题原因,原来是自己的基础不牢......
  • go-rod 设置等待,用js设置等待
       page.MustWait(`()=>{window.astr=Array.from(document.querySelectorAll('#noResult>div>div>p:nth-child(3)')).map(article=>article.inn......
  • Js导出csv
    functionexportCSV(title,jsonData,name){//要导出的json数据letstr=``;for(letioftitle){......
  • 介绍 Blite,轻量级 Node.js 后端服务器
    为小型应用程序构建后端服务器可能是一个复杂且耗时的过程。Blite提供了一种解决方案来简化此过程并让您快速启动和运行。Blite是一个单一的Node.js后端服务器应用程序,提......
  • node实现http接口请求(解决跨域)
    varexpress=require('express');varapp=express();varbodyParser=require('body-parser')app.post('/highway',bodyParser.json(),function(req,res){......
  • 对json中的字典提取其中的所有参数(包括list和dict中)整合为一层
    例如:在python中,我有一个字典,类似于{s1:[{s11:0,s12:2},{s13:3,s14:4}],s2:'s2',s3:{s31:0,s32:2}},我想使用递归提取其中所有的字典的key值和value,并在key值中包含它在字典......
  • Node.js 集群模块:扩展您的应用程序
    优化您的代码以处理大量请求并确保您的应用程序以最佳方式执行至关重要。提高Node.js应用程序性能的一种方法是使用集群模块。在这篇博客中,我们将讨论Node.js集群模块是......
  • 调试 Node.js
    调试Node.js调试器调试器是一种软件工具,用于通过分析方法观察和控制程序的执行流设计目标:帮助找出bug的根本原因,并帮助你解决它工作方式:将程序托管在自己的执行进......
  • coding持续集成构建环境自定义node版本
    解决方案只需要在构建计划的编写过程中增加一个如下的stage,具体nodejs版本下载地址可参考https://nodejs.org/en/download/releases/这里。stage('toggleNode.......
  • js根据文件链接下载文件
    通过iframe下载//移除旧的节点constoldNode=document.querySelector("#g-download-iframe")if(oldNode){document.body.removeChild(document.querySe......