详解node path模块的用法
更新时间:2023-10-11Node.js Path模块用法详解
前言
Path模块是Node.js中的核心模块,旨在处理文件路径的字符串。在Node.js中,路径类型是特定于操作系统的,因此Path模块提供了一些方法来处理不同操作系统上的路径。该模块导出了一个对象,对象中包含了一些处理路径的方法和属性。本文将逐一介绍这些方法和属性,并提供一些示例代码。
path.basename(path[, ext])
该方法返回指定路径中的最后一部分,即文件名,可以选择性地去除文件扩展名。需要注意的是,如果指定的路径不包含斜杠,则返回一个空字符串。
const path=require('path');
console.log(path.basename('/foo/bar/baz.js')); // 'baz.js'
console.log(path.basename('/foo/bar/baz.js', '.js')); // 'baz'
path.dirname(path)
该方法返回指定路径的目录名,即指定路径中最后一个斜杠之前的部分。如果指定的路径不包含斜杠,则返回一个空字符串。
const path=require('path');
console.log(path.dirname('/foo/bar/baz.js')); // '/foo/bar'
path.extname(path)
该方法返回指定路径中文件的扩展名,如果指定的路径中没有扩展名,则返回一个空字符串。需要注意的是,不同的操作系统对于扩展名的处理可能存在差异。
const path=require('path');
console.log(path.extname('/foo/bar/baz.js')); // '.js'
path.join([...paths])
该方法将多个路径连接起来,并且自动根据操作系统规则添加正确的路径分隔符。需要注意的是,连接后的路径是绝对路径还是相对路径取决于传入的第一个路径值。
const path=require('path');
console.log(path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')); // '/foo/bar/baz/asdf'
path.normalize(path)
该方法规范化指定路径,去除路径中的多余斜杠、相对路径符号等。需要注意的是,该方法不会解析路径中的符号链接。
const path=require('path');
console.log(path.normalize('/foo/bar//baz/asdf/quux/..')); // '/foo/bar/baz/asdf'
path.parse(path)
该方法返回一个对象,对象中包含解析后的路径信息。该信息包括路径的根、目录、文件名、扩展名和文件名去除扩展名后的部分。
const path=require('path');
console.log(path.parse('/foo/bar/baz.js'));
/*
{
root: '/',
dir: '/foo/bar',
base: 'baz.js',
ext: '.js',
name: 'baz'
}
*/
path.resolve([...paths])
该方法将多个路径解析为一个绝对路径。需要注意的是,方法会根据传入的路径从右到左进行解析,并且自动根据操作系统规则添加正确的路径分隔符。
const path=require('path');
console.log(path.resolve('/foo/bar', './baz')); // '/foo/bar/baz'
console.log(path.resolve('/foo/bar', '/tmp/file/')); // '/tmp/file'
path.sep
该属性返回操作系统规定的路径分隔符。在UNIX系统中,该值为“/”,在Windows系统中,该值为“\\”。
const path=require('path');
console.log(path.sep);
总结
Path模块是Node.js中非常常用的核心模块。该模块提供了一些方法和属性来处理不同操作系统上的路径,这些方法和属性使得开发者可以更加方便地操作路径相关的字符串。在使用该模块时,需要特别注意不同操作系统上的路径类型存在差异,例如在Windows系统中使用的路径分隔符是反斜杠“\”,而在UNIX系统中使用的路径分隔符是正斜杠“/”。