Node.js中路径处理模块path详解

2020-06-17 07:06:40易采站长站整理

(all spaces in the "" line should be ignored -- they are purely for formatting)

path.format(pathObject)

阅读相关API文档说明后发现,

path.format(pathObject)
中,pathObject的配置属性是可以进一步精简的。

根据接口的描述来看,以下两者是等价的。

     root vs dir:两者可以互相替换,区别在于,路径拼接时,root后不会自动加/,而dir会。

     base vs name+ext:两者可以互相替换。


var path = require('path');

var p1 = path.format({
root: '/tmp/',
base: 'hello.js'
});
console.log( p1 ); // 输出 /tmp/hello.js

var p2 = path.format({
dir: '/tmp',
name: 'hello',
ext: '.js'
});
console.log( p2 ); // 输出 /tmp/hello.js

path.parse(filepath)

path.format(pathObject) 
的反向操作,直接上官网例子。

四个属性,对于使用者是挺便利的,不过

path.format(pathObject) 
中也是四个配置属性,就有点容易搞混。


path.parse('/home/user/dir/file.txt')
// returns
// {
// root : "/",
// dir : "/home/user/dir",
// base : "file.txt",
// ext : ".txt",
// name : "file"
// }

获取相对路径

接口:

path.relative(from, to)

描述:从from路径,到to路径的相对路径。

边界:

     如果from、to指向同个路径,那么,返回空字符串。

     如果from、to中任一者为空,那么,返回当前工作路径。

上例子:


var path = require('path');

var p1 = path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb');
console.log(p1); // 输出 "../../impl/bbb"

var p2 = path.relative('/data/demo', '/data/demo');
console.log(p2); // 输出 ""

var p3 = path.relative('/data/demo', '');
console.log(p3); // 输出 "../../Users/a/Documents/git-code/nodejs-learning-guide/examples/2016.11.08-node-path"

平台相关接口/属性

以下属性、接口,都跟平台的具体实现相关。也就是说,同样的属性、接口,在不同平台上的表现不同。

   

path.posix
:path相关属性、接口的linux实现。

   

path.win32
:path相关属性、接口的win32实现。

   

path.sep
:路径分隔符。在linux上是/,在windows上是“。