在nodejs中,path是个使用频率很高,但却让人又爱又恨的模块。部分因为文档说的不够清晰,部分因为接口的平台差异性。以下是我总结的一些简单用法,我用的win10电脑。
一、path的访问
在代码开头直接引入如下,即可:
const path = require('path');
二、常用方法
1.获取路径:path.dirname
例子:
var path = require('path');
var filePath = '/node/path/test.js';
console.log(path.dirname(filePath));
//输出:\node\path
2.获取文件名:path.basename
可以直接写为:
console.log(path.basename('/node/path/test.js'));
//输出:test.js
3.获取文件扩展名:path.extname
例子:
console.log(path.extname('/node/path/test.js'));
//输出: .js
console.log(path.extname('test.html'));
//输出: .html
4.路径组合:path.join
例子:
console.log(path.join('/node','path','bar/baz','test'));
//输出:\node\path\bar\baz\test
5.路径解析:path.parse
例子:
console.log(path.parse('/node/path/test.js'));
//输出:
//{ root: '/',
//dir: '/node/path',
//base: 'test.js',
//ext: '.js',
//name: 'test' }
6.路径组合:path.format
例子:
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
7.获取相对路径:path.relative(from, to)
从from路径到to路径的相对路径
例子:
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('/first/path', '');
console.log(p3);
//输出:..\..\node-workspace\three-period\first
//(这是我的js当前路径)
8.判断是否是当前路径:path.isAbsolute
例子:
path.isAbsolute('//server'); // true
path.isAbsolute('\\\\server'); // true
path.isAbsolute('C:/foo/..'); // true
path.isAbsolute('C:\\foo\\..'); // true
path.isAbsolute('bar\\baz'); // false
path.isAbsolute('bar/baz'); // false
path.isAbsolute('.'); // false
10.规范化路径:path.normalize
会解析'..'和'.'片段
例子:
console.log(path.normalize('C:\\temp\\\\foo\\bar\\..\\'));
// 输出: 'C:\\temp\\foo\\'