path 路径模块
path 模块是 Node.js 官方提供的、用来处理路径的模块。它提供了一系列方法和属性,来满足用户对路径的处理需求。
官方文档:https://nodejs.org/dist/latest-v18.x/docs/api/path.html
例如:
path.join() 方法
用来将多个路径片段拼接成完整的路径字符串;
path.basename()方法
用来从路径字符串中,将文件名解析出来;
path.extname() 方法
从路径字符串中,获得文件的扩展名;
要使用 path 路径模块,就需要先导入:
const path = require('path')
使用什么模块,都要先引入模块;
path.join() 拼接
使用 path.join() 方法,可以把多个路径片段拼接为完整的路径字符串
path.join([...paths])
-- ...paths <string> 路径片段的序列
-- 返回值:<string>
示例1:
const pathStr = path.join('/a','/b/c','../','./d','e')
console.log(pathStr); // a\b\d\e
提示1:共传递了五个路径片段;
提示2:其中有个 '../
',是返回到上一层路径,所以会抵消一层路径;如果有两个 '../../
',则会抵消最近的两层路径;
示例2:
const pathStr2 = path.join(__dirname,'./files/demo.html')
console.log(pathStr2); // D:\Pro_Temp\nodejs\files\demo.html
提示:使用 __dirname
可以拼接完整路径;
注意:凡是涉及路径拼接的操作,都使用 path.join() 方法处理;
1)不建议使用 "+" 连接符来拼接,容易出错,比如:
const pathStr3 = __dirname + "./files/poem.md"
console.log(pathStr3); // D:\Pro_Temp\nodejs./files/poem.md
注意:拼接路径多出了一个点,这就是个错误的路径;
2)路径拼接的参数是合法的字符串,其他数据类型会报错:
const pathStr4 = path.join(__dirname , 123 , './files/poem.md')
console.log(pathStr4);
这么写会报错:
throw new ERR_INVALID_ARG_TYPE(name, 'string', value);
再次提醒了参数必须是 字符串类型;
path.basename() 获取文件名
使用 path.basename() 方法,可以从文件路径中,获取文件的名称部分;
path.basename(path[, suffix])
-- path :一串文件路径的字符串;
-- suffix : 可选参数,要删除的文件后缀,就是扩展名;
-- 返回的结果也是 string ;
示例1:
const pathStr = "/foo/bar/baz/asdf/quux.html"
const fileName = path.basename(pathStr)
const fileNameWithoutExt = path.basename(pathStr,'.html')
console.log(fileName); // quux.html
console.log(fileNameWithoutExt); // quux
提示:不加参数就返回文件全名,要去掉扩展名就加个扩展名的参数;
示例2:
const pathStr = 'foo/bar/index.HTML'
const fileName = path.basename(pathStr,'.html')
console.log(fileName); //index.HTML
注意:扩展名参数是区分大小写的,不能完全匹配到,就会完整输出文件名;
path.extname() 获取扩展名
使用 path.extname() 方法,可以获取路径中的扩展名部分;
path.extname(path)
-- path :<string> 必须参数,表示路径字符串;
返回 string ,扩展名字符串
示例1:
const pathStr = 'a/b/c/index.html'
const extName = path.extname(pathStr)
console.log(extName); // .html
提示:输出扩展名,是会带上 "." 的;
示例2:特殊点的情况
path.extname('index.html'); // Returns: '.html'
path.extname('index.coffee.md'); // Returns: '.md'
path.extname('index.'); // Returns: '.'
path.extname('index'); // Returns: ''
path.extname('.index'); // Returns: ''
path.extname('.index.md'); // Returns: '.md'
提示:一般路径都有 "文件名.扩展名
",免不了些特殊情况,只能记住。