node学习笔记——基础模块path常用api

基础模块path常用api

1.path.basename(path[, ext])
path.basename() 方法会返回 path 的最后一部分。

例如:

const path = require('path');

console.log(path.basename('/nodeJS学习/2-6/index.js'));

运行结果:

如果加入ext,打印结果就会省略后缀名:

const path = require('path');

console.log(path.basename('/nodeJS学习/2-6/index.js','.js'));

运行结果:

2.path.dirname(path)
path.dirname() 方法会返回 path 的目录名。

例如:

const path = require('path');

console.log(path.dirname('/nodeJS学习/2-6/index.js'));

运行结果:

3.path.extname(path)
path.extname() 方法会返回 path 的扩展名,即 path 的最后一部分中从最后一次出现 .(句点)字符直到字符串结束。 如果在 path 的最后一部分中没有.,或者如果 path 的基本名称除了第一个字符以外没有.,则返回空字符串。如果 path 不是字符串,则抛出 TypeError。

例如:

const path = require('path');

console.log(path.extname('/nodeJS学习/2-6/index.js'));
console.log(path.extname('index.html'));
console.log(path.extname('index.'));
console.log(path.extname('index'));

运行结果:

4.path.join([…paths])
path.join() 方法会将所有给定的 path 片段连接到一起(使用平台特定的分隔符作为定界符),然后规范化生成的路径。
长度为零的 path 片段会被忽略。 如果连接后的路径字符串为长度为零的字符串,则返回 ‘.’,表示当前工作目录。
如果任何的路径片段不是字符串,则抛出 TypeError。

例如:

const path = require('path');

console.log(path.join('nodejs','index.js'));

运行结果:

5.path.normalize(path)

path.normalize() 方法规范化给定的 path,解析 ‘…’ 和 ‘.’ 片段。
当找到多个连续的路径段分隔字符时(例如 POSIX 上的 /、Windows 上的 \ 或 /),则它们将被替换为单个平台特定的路径段分隔符(POSIX 上的 /、Windows 上的 \)。 尾部的分隔符会保留。
如果 path 是零长度的字符串,则返回 ‘.’,表示当前工作目录。
例如:

const path = require('path');

console.log(path.normalize('/nodejs///index.js'));

运行结果:

6.path.resolve([…paths])
path.resolve() 方法会将路径或路径片段的序列解析为绝对路径。
给定的路径序列会从右到左进行处理,后面的每个 path 会被追加到前面,直到构造出绝对路径。 例如,给定的路径片段序列:/目录1、 /目录2、 目录3,调用 path.resolve(’/目录1’, ‘/目录2’, ‘目录3’) 会返回 /目录2/目录3,因为 ‘目录3’ 不是绝对路径,但 ‘/目录2’ + ‘/’ + ‘目录3’ 是。
如果在处理完所有给定的 path 片段之后还未生成绝对路径,则会使用当前工作目录。
生成的路径会被规范化,并且尾部的斜杠会被删除(除非路径被解析为根目录)。
零长度的 path 片段会被忽略。
如果没有传入 path 片段,则 path.resolve() 会返回当前工作目录的绝对路径。
例如:

const path = require('path');

console.log(path.resolve('./pathTest.js'));

运行结果:

7.path.parse(path)
path.parse() 方法会返回一个对象,其属性表示 path 的有效元素。 尾部的目录分隔符会被忽略。

返回的对象具有以下属性:

例如:

const path = require('path');
let pathObj = path.parse('/nodejs/test/index.js');
console.log(pathObj);

输出结果:

8.path.format(pathObject)

例如:

const path = require('path');
let pathObj = path.parse('/nodejs/test/index.js');

console.log(path.format(pathObj));

输出结果:

注意:

例如:

const path = require('path');

let path1 = path.format({
    root: '/123',
    dir: '/home/user/dir',
    base: 'file.txt'
  });
console.log('1.如果提供了 pathObject.dir,则忽略 pathObject.root:');
console.log('path1:',path1);

let path2 = path.format({
    root: '/123',
    base: 'file.txt',
    ext: 'js'
  });
console.log('2.如果未指定 `dir`,则使用 `root`,`ext` 将被忽略:');
console.log('path2:',path2);

let path3 = path.format({
    root: '/',
    name: 'file',
    ext: '.txt'
  });
  console.log('3.如果未指定 `base`,则使用 `name` + `ext`:');
  console.log('path3:',path3);

输出结果为:

9.path.sep
提供平台特定的路径片段分隔符:

例如:

const path = require('path');
console.log(path.sep);

输出结果:

10.path.win32
path.win32 属性提供对特定于 Windows 的 path 方法的实现的访问。
例如:

const path = require('path');

console.log("mac系统下的分隔符:",path.sep);
console.log("windows系统下的分隔符:",path.win32.sep);

输出结果:

11.全局对象 __filename
表示当前正在执行的脚本的文件名:
例如:

console.log(__filename);

输出结果:

12.全局对象 __dirname
表示当前正在执行的脚本的目录:
例如:

console.log(__dirname);

输出结果:

猜你喜欢

转载自blog.csdn.net/xt_123456/article/details/106796578
今日推荐