本笔记记录path路径模块的使用
- path路径模块应用比较多,常用于路径的拼接,路径的转换,以及路径的解析。
- 其中还有相对路径dirname和绝对路径filename的使用。
- 这里通过代码实际使用进行解释。
// 引入path路径模块
const path = require('path');
// 1.path.join:拼接成相对路径
// 拼接方式:linux系统:/ ; windows系统:\
let path1 = path.join('file','01.js');
console.log(path1); //输出结果:file\01.js
// 2.path.resolve:将相对路径拼接成绝对路径
let path2 = path.join('/filename00','/filename01','01.js');
let path3 = path.resolve('/filename00','/filename01','01.js');
// 一个是join,一个是resolve,区别在于是否改变相对路径,
// 前者是相对路径,后者将相对路径转换为绝对路径(直观就是完善了路径)
console.log(path2); //输出结果:\filename00\filename01\01.js
console.log(path3); //输出结果:E:\filename01\01.js
// 3.__dirname:指向JS文件的相对路径,包含所在的文件夹,不包含该JS文件
console.log( __dirname ); //输出结果:E:\web_workplace\web-nodejs\02-urlandfs
// 4.__filename:指向当前模块文件被解析过后的绝对路径,包含该JS文件
console.log( __filename ); //输出结果:E:\web_workplace\web-nodejs\02-urlandfs\05-path_model.js
// 5.结合2和1的方式,这也是比较常用的寻找或者拼接路径的方式
let path4 = path.join(__dirname, '02.js');
console.log(path4); //E:\web_workplace\web-nodejs\02-urlandfs\02.js
// 6.parse:返回一个包含root, dir, base, ext, name的json对象,即解析路径
let parse_path = path.parse("G:/filename00/filename01/01.js");
console.log(parse_path);
// 输出结果:
/*
{
root: 'G:/',
dir: 'G:/filename00/filename01',
base: '01.js',
ext: '.js',
name: '01'
}
*/
// 因此可以通过解构得到需要的属性
let {root, dir, base, ext, name} = path.parse("G:/filename00/filename01/01.js");
console.log(dir); //输出结果:G:/filename00/filename01
上面代码中详细介绍了path路径模块下常用的方法以及技巧。
这里提到一点,还有一个queryString模块也具有拼接的功能。具体的使用如下:
// queryString也具有拼接能力的模块
// 1.引入queryString模块
const queryString = require('querystring');
// 2.调用queryString下的stringify()方法,类似于拼接路由的多个参数
let stringify = queryString.stringify({
wd: "muzhichuqiu",
mm: 123,
mbao: "456"
});
console.log(stringify); //输出结果:wd=muzhichuqiu&mm=123&mbao=456
// 3.常与绝对路径filename搭配使用
console.log(__filename+'/'+stringify);
// 输出结果:E:\web_workplace\web-nodejs\02-urlandfs\07-queryString.js/wd=muzhichuqiu&mm=123&mbao=456
// 类似于爬取到完整的网站路径
- queryString模块可以用于在path路径拼接后加上一些参数,组合成一个完整的url链接。反向使用的话,可以用于url链接的及解析,即爬虫中的应用。