• 技术文章 >web前端 >js教程

    聊聊node中的fs模块、path模块

    青灯夜游青灯夜游2022-04-24 21:00:45转载565
    本篇文章带大家了解一下node中的fs文件系统模块和path路径模块,希望对大家有所帮助!

    fs文件系统模块

    fs 模块是 Node.js 官方提供的、用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求。

     const fs = reuire('fs')

    读取指定文件中的内容

    1. fs.readFile()的语法格式

    使用 fs.readFile() 方法,可以读取指定文件中的内容,语法格式如下:

     fs.readFile(path[, options], callback)

    2. fs.readFile()的示例代码

    以 utf8 的格式,读取指定文件的内容,并打印err 和 data 的值:

     const fs = require('fs');
     fs.readFile('hello.txt', 'utf-8', (err, data) => {
         // 判断是否读取成功
         if (err) return console.log(err);
         console.log(data); 
     });

    向指定的文件中写入内容

    1. fs.writeFile()的语法格式

    使用 fs.writeFile() 方法,可以向指定的文件中写入内容,语法格式如下:

     fs.writeFile(file, data[, options], callback)

    2. fs.writeFile()的示例代码

     const fs = require('fs');
     fs.writeFile('./hello.txt', 'hello node', (err) => {
         // 判断是否写入成功
         if (err) return console.log(err);
         console.log('写入成功');
     });

    读取指定目录下所有文件的名称

    1.fs.readdir()的语法格式

    使用 fs.readdir() 方法,可以读取指定目录下所有文件的名称,语法格式如下:

     fs.readdir(path[, options], callback)

    2.fs.readdir()的示例代码

    通过 fs.readdir() 方法,可以读取指定目录下,所有文件的名称:

     const fs = require('fs');
     fs.readdir('./', (err, data) => {
         // 错误处理
         if (err) return console.log(err);
         console.log(data);
     });

    fs 模块-路径动态拼接的问题

    在使用 fs 模块操作文件时,如果提供的操作路径是以./ 或 ../ 开头的相对路径时,很容易出现路径动态拼接错误的问题。 这是因为代码在运行的时候,会以执行node 命令时所处的目录,动态拼接出被操作文件的完整路径。

    解决方案:在使用fs 模块操作文件时,直接提供绝对路径,不要提供./ 或 ../ 开头的相对路径,从而防止路径动态拼接的问题。

    注意:使用__dirname 获取当前文件所在的绝对路径

     const fs = require('fs');
     // 拼接要读取文件的绝对路径
     let filepath = __dirname +'/hello.txt'
     fs.readFile(filepath, 'utf-8', (err, data) => {
         // 判断是否读取成功
         if (err) return console.log(err);
         console.log(data); 
     });

    path路径模块

    path 模块是 Node.js 官方提供的、用来处理路径的模块。它提供了一系列的方法和属性,用来满足用户对路径的处理需求。

    如果要在 JavaScript 代码中,使用 path 模块来处理路径,则需要使用如下的方式先导入它:

     const path = require('path')

    路径拼接

    path.join()的语法格式

    使用 path.join() 方法,可以把多个路径片段拼接为完整的路径字符串,语法格式如下:

     path.join([...paths])

    使用 path.join() 方法,可以把多个路径片段拼接为完整的路径字符串:

     const path = require('path');
     console.log( path.join('a', 'b', 'c') ); // a/b/c
     console.log( path.join('a', '/b/', 'c') ); // a/b/c
     console.log( path.join('a', '/b/', 'c', 'index.html') ); // a/b/c/index.html
     console.log( path.join('a', 'b', '../c', 'index.html') ); // a/c/index.html
     console.log(__dirname); // node自带的全局变量,表示当前js文件所在的绝对路径
     // 拼接成绩.txt的绝对路径
     console.log( path.join(__dirname, '成绩.txt') ); // ------ 最常用的

    获取路径中的文件名

    1.path.basename()的语法格式

    使用 path.basename() 方法,可以获取路径中的最后一部分,经常通过这个方法获取路径中的文件名,语法格式如下:

     path.basename(path[,ext])

    2.path.basename()的代码示例

    使用 path.basename() 方法,可以从一个文件路径中,获取到文件的名称部分:

     // 找文件名
     console.log( path.basename('index.html') ); // index.html
     console.log( path.basename('a/b/c/index.html') ); // index.html
     console.log( path.basename('a/b/c/index.html?id=3') ); // index.html?id=3
     console.log(path.basename('/api/getbooks')) // getbooks

    获取路径中的文件扩展名

    1.path.extname()的语法格式

    使用 path.extname() 方法,可以获取路径中的扩展名部分,语法格式如下:

     path.extname(path)

    使用 path.extname() 方法,可以获取路径中的扩展名部分

     // 找字符串中,最后一个点及之后的字符
     console.log( path.extname('index.html') ); // .html
     console.log( path.extname('a.b.c.d.html') ); // .html
     console.log( path.extname('asdfas/asdfa/a.b.c.d.html') ); // .html
     console.log( path.extname('adf.adsf') ); // .adsf

    原文地址:https://juejin.cn/post/7088650568150810638

    作者:L同学啦啦啦

    更多node相关知识,请访问:nodejs 教程

    以上就是聊聊node中的fs模块、path模块的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:掘金社区,如有侵犯,请联系admin@php.cn删除
    专题推荐:node
    上一篇:聊聊Angular中组件之间怎么通信 下一篇:一文浅析Angular中的响应式表单
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• node的安装模式之间有什么区别• 怎么获取Node性能监控指标?获取方法分享• react中为什么使用node• Node更新了,一起看看Node18的新特性!• node怎么发出https请求• 什么是单点登录?怎么使用Nodejs实现SSO
    1/1

    PHP中文网