path
模块是 Node.js 官方提供的、用来处理路径
的模块。它提供了一系列的方法和属性,用来满足用户对路径的处理需求。常用
前面一节说到使用__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
sep
可以获取我们操作系统的路径分隔符,不同的操作系统分隔符也是不一样的。示例:
console.log(path.sep);
输出结果:
\
在Linux系统里面则是/
我们先来介绍一个新朋友__filename
,它能够返回我们文件的绝对路径
console.log(__filename);
//G:\前端开发\node.js\path\path.js
我们来具体看看parse
如何使用:
const pathName = 'G:\\前端开发\\node.js\\path\\path.js'
// 需要加\对路径进行转义
console.log(path.parse(pathName));
我们来具体看看path.basename
如何获取路径的基础名称
示例:
const pathName = 'G:\\前端开发\\node.js\\path\\path.js'
console.log(path.basename(pathName));
输出结果:
path.js
我们来具体看看path.dirname
如何获取路径的目录名
示例:
const pathName = 'G:\\前端开发\\node.js\\path\\path.js'
console.log(path.dirname(pathName));
输出结果:
G:\前端开发\node.js\path
我们来具体看看path.extname
如何获得路径的扩展名
示例:
const pathName = 'G:\\前端开发\\node.js\\path\\path.js'
console.log(path.extname(pathName));
输出结果:
.js
使用
path.join()
方法,可以把多个路径片段拼接为完整的路径字符串
,语法格式如下:
path.join([...paths])
示例:
const pathStr = path.join('./平','./步','./青','./云')
console.log(pathStr);
输出结果:
平\步\青\云
注意:如果加上../
会将前面的路径删除。
示例:
const pathStr = path.join('./平','./步','../','./青','./云')
console.log(pathStr);
输出结果:
平\青\云
尚硅谷2023版Node.js零基础视频教程,nodejs新手到高手