path 模块是 Node.js 官方提供的、用来处理路径的模块。
路径拼接 path.join()
注意 .../ 会抵消前面的路径
./ 会被忽略
JavaScript
const path=require('path');
const pathStr=path.join('/a','/b');
console.log(pathStr);// 输出 \a\b\
const pathStr2=path.join('/a','/b/c','../','./d','e');
console.log(pathStr2);//输出 \a\b\d\e ../将它前一个路径 /c 抵消了
为什么用path.join拼接路径,不直接用字符串+号拼接?
JavaScript
const path=require('path');
const pathStr=path.join(__dirname,'./test/01.txt');
console.log(pathStr);// 输出D:\StudyAndhi\nodejs\path_module\test\01.txt
使用"+"号拼接,多了一个.都会导致路径获取错误,相比之下,path.join拼接路径更好用
JavaScript
const pathStr=path.join(__dirname+'./test/01.txt');
console.log(pathStr);// 输出D:\StudyAndhi\nodejs\path_module.\test\01.txt
获取路径中文件名 path.basename()
使用 path.basename()
方法,可以获取路径中的最后一部分,常通过该方法获取路径中的文件名
语法:
path.basename(path[, ext])
参数:
path: 文件路径
ext: 文件扩展名
例子,从一个文件路径中,获取文件的名称部分
只传文件路径,得到路径的最后一部分
传路径和文件扩展名,得到文件名称部分
JavaScript
const path=require('path');
const fpath='./test/demo.txt'
const nameWithoutExt =path.basename(fpath,'.txt');
console.log(nameWithoutExt);// demo
const full_name=path.basename(fpath);
console.log(full_name);// demo.txt
获取路径中文件扩展名 path.extname()
带反斜杠不是js文件路径吗?
JavaScript
const path = require('path')
const fpath = '/a/b/c/index.html'
const fext = path.extname(fpath)
console.log(fext);// .html
const path2 = '/a/add.js';
const ext2 = path.extname(path2)
console.log(ext2);//.js
参考:
https://brucecai55520.gitee.io/bruceblog/notes/nodejs/node.html#初识-nodejs