浅析node的path路径模块

1. 介绍

Node.js中的path模块提供了一些有用的方法来处理文件路径。在此模块之前,处理路径通常是通过字符串操作实现的,而这种方式异常繁琐,容易出错。 path模块提供了跨平台处理路径的实用工具。这些工具可用于构建和解析文件路径,并具有良好的跨平台性质。

2. 使用

2.1 在Node.js中导入path模块

使用Node.js的程序可以用require函数来添加path模块读取后,可以用该模块的代码。

const path = require('path');

此代码添加了一个名为path的模块。在这些代码下面,可以使用模块的任何功能来帮助处理文件路径。 

2.2 处理路径并生成路径串

path模块包括几个功能来生成路径串,根据需要使用这些功能来保持有序。

2.2.1 path.join()

path.join()方法通过连接所有给定的path片段形成一个新路径字符串。并返回连接后的新路径字符串。

const path = require('path');

const directoryPath = path.join(__dirname, './student');

console.log(directoryPath);

在上面的代码中,使用__dirname宏定义了当前文件的目录,然后将其与“学生”路径片段连接起来以生成完整的目录路径字符串。运行此代码结果如下:

/Users/Desktop/node/server/src/routes/student

由于该文件在我的笔记本电脑上运行,因此目录路径字符串以我的笔记本电脑的根目录开始。 

2.2.2 path.resolve()

使用path.resolve()方法,可以解析相对路径并根据当前工作目录生成新路径。如果从命令行调用Node.js程序,则当前工作目录可能与脚本本身所在的目录不同。

const directoryPath = path.resolve('./student');

console.log(directoryPath);

在这个例子中,"./students"是相对于工作目录的相对路径。使用path.resolve()方法,该路径解析为与__dirname相同的目录。

执行这个代码的结果如下:

/Users/Desktop/node/server/src/routes/student

2.3 数据处理时需要区分路径和文件名

当处理文件路径时,路径和文件名是分开的,path提供方法来处理这种情况,比如path.basename()方法可以返回添加到路径末尾的文件名。

const path = require('path');

const myPath = '/Users/Desktop/node/server/src/routes/student/new.txt'

console.log(path.basename(myPath));

在这个例子中,path.basename()在绝对路径字符串中查找最后一个目录分隔符,并将该分隔符之后的任何内容视为文件名返回。运行此代码,它输出"new.txt"。

2.4 Getting dirname and extension

在处理文件路径时,还有两个重要的片段,一个是目录名,另一个是文件扩展名。使用path.dirname()方法来返回路径的目录名。

const myPath = '/Users/Desktop/node/server/src/routes/student/new.txt'

console.log(path.dirname(myPath));

执行上述代码,可以发现输出的是文件的目录名,即"/Users/Desktop/node/server/src/routes/student"。

使用path.extname方法可以获得文件扩展名。

const myPath = '/Users/Desktop/node/server/src/routes/student/new.txt'

console.log(path.extname(myPath));

这段代码输出了文件的扩展名,即 ".txt"。

3. 总结

path模块的职责之一就是在处理文件路径时提供了一套更好的方法,并且为使用这些方法的开发人员提供了跨平台性。