path 和路径有关的操作
Path(路径)
path
模块提供用于处理文件路径和目录路径的实用工具。 它可以使用以下方式访问
const path = require('path');
1. path.normalize(path) [就是把路径改成比较标准的路径格式]
// 把路径改成比较标准的路径格式
const {normalize} = require('path')
// const normalize = require('path').normalize
console.log(normalize('./user//local/bin'));
console.log(normalize('/user//local/../bin'));
运行结果
2.path.join([...paths]) 拼接,可以拼接路径,也是规范的拼接
const {join} = require('path') console.log(join('/user','local','bin/')); console.log(join('/user','../local','bin/'));
运行结果
3.path.resolve([...paths]) path.resolve()
方法将路径或路径片段的序列解析为绝对路径。
const{resolve} = require('path') //相对路径帮你解释成绝对路径 console.log(resolve('./'));
运行结果
4.names相关的(path.basename(path[, ext]) & path.dirname(path) &path.extname(path))
path.basename(path[, ext]) 文件扩展名
path.dirname(path) path
的目录名
path.extname(path) path
的扩展名
const {basename,dirname,extname} =require('path') const filePath = '/user/local/bin/no.txt' //所在文件名 console.log(basename(filePath)); //所在路径 console.log(dirname(filePath)); //拓展名 console.log(extname(filePath));
运行结果
5.path.parse(path) 和 path.format(pathObject)
path.parse()
方法返回一个对象,其属性表示 path
的重要元素
path.format()
方法从对象返回路径字符串。
const {parse,format} = require('path') const filePath ='/user/local/node_modules/n/package.json' // parse 分析一下路径,返回对象 const ret = parse(filePath) console.log(ret); // format把对象返回成路径 console.log(format(ret));
运行结果:
当为 pathObject
提供属性时,注意以下组合,其中一些属性优先于另一些属性:
- 如果提供了
pathObject.dir
,则忽略pathObject.root
。 - 如果
pathObject.base
存在,则忽略pathObject.ext
和pathObject.name
。
6.跟操作系统有关的(sep,delimiter,win32,posix)
const {sep, delimiter, win32 ,posix} = require('path') //路径的分隔符 console.log('sep',sep); console.log('posix sep',posix.sep); console.log('PATH',process.env.PATH); //delimiter,path的分隔符 console.log('delimiter',delimiter); console.log('posix delimiter',posix.delimiter);
运行结果
可以获取路径的方法(3种)
const path = require('path'); const mod = require('./02_cusmod.js'); console.log(mod.testVar); console.log('__dirname ',__dirname); console.log('process.cwd()',process.cwd()); console.log('./ ',path.resolve('./'));
运行结果
总结
- _dirname,_filename 总是返回文件的绝对路径(物理磁盘上的路径)
- processn.cwd()总是返回执行node命令所在文件夹[当前用户在哪里启动的叫脚本]
- ./ 在require方法中总是相对当前文件所在文件夹
- ./ 在其他地方和process.cwd()一样,相对node启动文件夹