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