node.js path路径模块

114 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第3天,点击查看活动详情

path路径模块

path模块也是node.js官方提供的用来处理路径的模块,也提供了一系列的方法和属性

  • path.join():用来将多个路径片段拼接成一个完整的路径
  • path.basename():用来从路径字符串中,将文件名解析出来
  • path.basename():用来获取路径的的扩展名部分

path路径也是安装node之后内置的,直接使用require导入,使用常量接收

const path=require('path')

path.join()

在之前的使用fs模块读写文件内容的时候,路径都是相对路径,我们在运行的时候就要切换到对应的路径在拼接上这个相对路径才能读写文件内容,要是路径太长了就操作就变得非常不便,我们就可以使用path路径模块来解决这些问题

使用path.join()可以将多个路径片段拼接成一个完整的路径,语法格式为path.join([...paths])

  • ...paths:路径片段的序列
  • 返回值:< string >

传入几个路径片段,../会将前面抵消一层路径,有两个../,所以前面的/b/c被抵消掉了,最终打印出来的结果是 \a\d\e

const pathStr=path.join('/a','/b/c','../../','/d','/e')
console.log(pathStr);// \a\d\e

__dirname表示当前文件所在的目录

例如当前文件的全路径是c:/Users/Desktop/1.txt,那么__dirname就表示c:/Users/Desktop,我们就可以使用path.join()方法将路径片段拼接成完整的路径,运用到读取方法的路径参数里面,发现可以成功读取内容

fs.readFile(path.join(__dirname,'./1.txt'),'utf8',function(err,dataStr){
  if(err){
    return console.log(err.message);
  }
  console.log(dataStr);
})

图片.png

path.basename()

path.basename()可以获取路径中的最后一部分,语法格式为path.basename(path[, ext])

  • path表示一个路径的字符串
  • ext表示文件扩展名

可以看见使用path.basename()没有加ext参数在控制台打印是路径中的最后一部分,加了ext参数则文件的扩展名被屏蔽掉了

const path=require('path')

const fpath='/a/b/c/index.html'
const fullname1=path.basename(fpath)
console.log(fullname1);
const fullname2=path.basename(fpath,'.html')
console.log(fullname2);

图片.png

path.extname()

而path.extname()方法则用于获取路径的的扩展名部分,语法格式为path.extname(path)

  • path表示路径
const fpath='/a/b/c/index.html'
const fullname=path.extname(fpath)
console.log(fullname);

图片.png