node核心模块path使用

path 模块

path模块可在脚本中 require 后直接使用

const path = require('path')
path 常用api
  • basename() 获取路径中的基础名称
  • dirname() 获取路径中目录名称
  • extname() 获取路径中扩展名称
  • isAbsolute() 获取路径是否为绝对路径
  • join() 拼接多个路径片段
  • resolve() 返回绝对路径
  • parse() 解析路径
  • format() 序列化路径
  • normalize() 规范化路径
获取路径中的基础名称

返回的是接受路径中的最后一部分

第二个参数表示扩展名,如果没有设置则返回完整的文件名称带后缀

第二个参数作为后缀时,如果没有在当前路径中被匹配到,则会被忽略

处理目录路径的时候,如果结尾处有路径分隔符,则也会被处理掉

// 返回路径中的最后一位
console.log(__filename)
console.log(path.basename(__filename));

// D:\weblearn\notes\code\node\path.js
// path.js


// 可传入文件后缀名称,如有则输出不带后缀,否则输出整个文件名称
console.log(path.basename(__filename,'.js'));
console.log(path.basename(__filename,'.css'));


console.log(path.basename('/a/b/c'));
console.log(path.basename('/a/b/c/'));

// c c
获取路径目录名(路径)

返回路径中最后一个部分的上一层目录所在路径

console.log(path.dirname(__filename));
console.log(path.dirname('/a/b/c'));
console.log(path.dirname('/a/b/c/'));
获取路径的扩展名

返回path路径中相应文件的后缀名

如果path路径中存在多个’.’,匹配的是最后一个点到最后的内容


console.log(path.extname(__filename));
console.log(path.extname('/a/b/c'));
console.log(path.extname('/a/b/c/'));
console.log(path.extname('/a/b/c/index.js.css.html'));

// .js
//
//
// .html
解析路径

接受一个路径,返回一个对象,包含不同的信息

返回信息: root dir base ext name

const obj = path.parse('/a/b/c/index.html')
console.log(obj);
// {
//   root: '/',
//   dir: '/a/b/c',
//   base: 'index.html',
//   ext: '.html',
//   name: 'index'
// }

const obj = path.parse('/a/b/c/')
const obj = path.parse('/a/b/c')
console.log(obj);
// { root: '/', dir: '/a/b', base: 'c', ext: '', name: 'c' }

const obj = path.parse('./a/b/c')
console.log(obj);
// { root: '', dir: './a/b', base: 'c', ext: '', name: 'c' }
序列化路径
const obj = path.parse('./a/b/c')
console.log(path.format(obj));
// ./a/b\c
判断当前路径是否为绝对路径
console.log(path.isAbsolute('foo'));
console.log(path.isAbsolute('/foo'));
console.log(path.isAbsolute('//foo'));
console.log(path.isAbsolute(''));
console.log(path.isAbsolute('.'));
console.log(path.isAbsolute('../foo'));
// false
// true
// true
// false
// false
// false
拼接路径
console.log(path.join('a/b','c','index.html'));
console.log(path.join('/a/b','c','index.html'));
console.log(path.join('a/b','c','../','index.html'));
console.log(path.join('a/b','c','./','index.html'));
console.log(path.join('a/b','c','','index.html'));
console.log(path.join(''));

// a\b\c\index.html
// \a\b\c\index.html
// a\b\index.html
// a\b\c\index.html
// a\b\c\index.html
// .
规范化路径
console.log(path.normalize(''));
console.log(path.normalize('a/b/c/d'));
console.log(path.normalize('a///b/c../d'));
console.log(path.normalize('a//\\b/c\\/d'));
console.log(path.normalize('a//\b/c\\/d'));
// .
// a\b\c\d
// a\b\c..\d
// a\b\c\d
// a\c\d
绝对路径

resolve([from],to)


console.log(path.resolve());
console.log(path.resolve('a','b'));   // 不带‘/’都默认为to部分
console.log(path.resolve('a','/b'));  // to部分带‘/’直接拼接
console.log(path.resolve('/a','/b')); // to部分带‘/’直接拼接
console.log(path.resolve('/a','b'));  // 第一个参数带'/',默认为根目录 

// D:\weblearn\notes\code\node
// D:\weblearn\notes\code\node\a\b
// D:\b
// D:\b
// D:\a\b
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值