目录
1、什么是path模块
path
模块是 Node.js 官方提供的、用来处理路径
的模块。它提供了一系列的方法和属性,用来满足用户对路径的处理需求。- 我将介绍如下几个较为常用的几个 API:
2、path.resolve 拼接规范的绝对路径 常用
前面一节说到使用__dirname
将路径转化为绝对路径
,这样可以避免相对路径产生的 Bug
,但是这种拼接出来的路径是不规范
的。
举个栗子:
const fs = require('fs')
const path = require('path')
fs.writeFileSync(__dirname+'/index.html','hello')
console.log(__dirname+'/index.html');
输出结果:
G:\前端开发\node.js\path/index.html
可以看出有\
和/
两种符号,这显然是不规范的。
我们使用path.resolve
来解决这个问题
console.log(path.resolve(__dirname,'./index.html'));
//也可以这样写
console.log(path.resolve(__dirname, 'index.html'));
输出结果:
G:\前端开发\node.js\path\index.html
如果我们这样写会出现问题:
console.log(path.resolve(__dirname, '/index.html'));
输出结果:
G:\index.html
在resolve
里面,第一个参数是绝对路径,后面的参数都为相对路径,如果在第二个参数前面加上/
符号,则会让第二个参数成为绝对路径。如果后面还有参数则会将这两个进行拼接,形成一个新的绝对路径。
console.log(path.resolve(__dirname, '/index.html','./text'));
输出结果:
G:\index.html\text
3、path.sep 获取操作系统的路径分隔符
sep
可以获取我们操作系统的路径分隔符,不同的操作系统分隔符也是不一样的。
示例:
console.log(path.sep);
输出结果:
\
在Linux系统里面则是/
4、 path.parse 解析路径并返回对象
我们先来介绍一个新朋友__filename
,它能够返回我们文件的绝对路径
console.log(__filename);
//G:\前端开发\node.js\path\path.js
我们来具体看看parse
如何使用:
const pathName = 'G:\\前端开发\\node.js\\path\\path.js'
// 需要加\对路径进行转义
console.log(path.parse(pathName));
返回一个对象。
5、path.basename 获取路径的基础名称
我们来具体看看path.basename
如何获取路径的基础名称
示例:
const pathName = 'G:\\前端开发\\node.js\\path\\path.js'
console.log(path.basename(pathName));
输出结果:
path.js
6、path.dirname 获取路径的目录名
我们来具体看看path.dirname
如何获取路径的目录名
示例:
const pathName = 'G:\\前端开发\\node.js\\path\\path.js'
console.log(path.dirname(pathName));
输出结果:
G:\前端开发\node.js\path
7、path.extname 获得路径的扩展名
我们来具体看看path.extname
如何获得路径的扩展名
示例:
const pathName = 'G:\\前端开发\\node.js\\path\\path.js'
console.log(path.extname(pathName));
输出结果:
.js
8、 path.join()路径拼接
- 额外补充一点课上没讲到的知识点。
使用
path.join()
方法,可以把多个路径片段拼接为完整的路径字符串
,语法格式如下:
path.join([...paths])
示例:
const pathStr = path.join('./平','./步','./青','./云')
console.log(pathStr);
输出结果:
平\步\青\云
注意:如果加上../
会将前面的路径删除。
示例:
const pathStr = path.join('./平','./步','../','./青','./云')
console.log(pathStr);
输出结果:
平\青\云
参考
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/144060.html