node.js笔记(3)

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

javascript 复制代码
const fs=require('fs')
fs.readFile('./files/1.txt','utf8',function(err,dataStr){
    if(err){
        return console.log('文件读取失败'+err.message)
    }
    console.log('文件读取成功')
})

出现路径拼接是因为是相对路径,采用绝对路径则不会。

采用绝对路径,移植性特别差,不利于维护。

_ _dirname表示当前文件所处的目录

javascript 复制代码
const fs=require('fs')
fs.readFile(__dirname+'/files/1.txt','utf8',function(err,dataStr){
    if(err){
        return console.log('文件读取失败'+err.message)
    }
    console.log('文件读取成功')
})

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

path.join()方法,将多个路径片段拼接成一个完整的路径字符串

path.basename()方法,用来从路径字符串中,将文件名解析出来。

使用如下的方法进行导入

javascript 复制代码
const path = require('path')
javascript 复制代码
const pathStr =path.join('/a','/b/c','../','./d','e')
console.log(pathStr)
//输出为\a\b\d\e
//输出没有c,是因为../抵消之前的一个目录。
javascript 复制代码
const path=path.join(__dirname+'./1.txt')
console.log(path)

path.basename(path,[ext])

path,必选参数,表示一个路径的字符串

ext,可选参数,表示文件扩展名

javascript 复制代码
const fpath='/a/b/c/index.html'
var fullName =path.basename(fpath)
console.log(fullName)   //输出index.html

var nameWithoutExt = path.basename(fpath,'.html')
console.log(nameWithoutExt)   //输出index

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

javascript 复制代码
 const fpath='/a/b/c/index.html'
 const fext=path.extname(fpath)
 console.log(fext) //输出.html
相关推荐
一位搞嵌入式的 genius3 分钟前
暑期自学嵌入式——Day10(C语言阶段)
linux·笔记·学习·嵌入式c语言
被遗忘的旋律.6 分钟前
Linux驱动开发笔记(五)——设备树(上)
linux·驱动开发·笔记
霜绛1 小时前
机器学习笔记(四)——聚类算法KNN、Kmeans、Dbscan
笔记·算法·机器学习·kmeans·聚类
飞速移动的代码菌9 小时前
【DataWhale】快乐学习大模型 | 202507,Task08笔记
笔记·学习
不在了情绪9 小时前
[ The Missing Semester of Your CS Education ] 学习笔记 Vim篇
笔记·学习·vim
遇见尚硅谷10 小时前
C语言:20250728学习(指针)
c语言·开发语言·数据结构·c++·笔记·学习·算法
这就是佬们吗12 小时前
初识 docker [上]
java·开发语言·笔记·docker·容器
Star在努力13 小时前
15-C语言:第15天笔记
c语言·笔记·算法
老虎062714 小时前
JavaWeb(苍穹外卖)--学习笔记14
笔记·学习
范纹杉想快点毕业15 小时前
Zynq SOC FPGA嵌入式裸机设计和开发教程自学笔记:硬件编程原理、基于SDK库函数编程、软件固化
网络·笔记·stm32·单片机·嵌入式硬件·tcp/ip·fpga开发