NodeJS之path模块
NodeJS之path模块
常用的主要有如下工具函数:
1. path.basename(path[, ext])
2. path.extname(path)
3. path.dirname(path)
4. path.parse(path)
5. path.format(pathObject)
6. path.isAbsolute(path);
7. path.join([...paths])
8. path.relative(from, to)
9. path.resolve([from...], to);
一:path.basename(path[, ext])
参数解析如下:
path: <string>
ext: <string> 可选的文件扩展名
返回:<string>
path.basename(filepath), 是获取路径的最后一部分。 可以看看如下代码:
const path = require('path'); console.log(path.basename("/node/base/path/xx/js/index.js")); // 最后输出 index.js console.log(path.basename("/node/base/path/xx/js")); // 输出js console.log(path.basename("/node/base/path/xx/js/")); // js/ 带反斜杠,也一样输出js
1.1 获取文件名
如果只想获取文件名,不需要扩展名则可以使用第二个参数,第二个参数可以指定文件的扩展名;如下代码:
const path = require('path'); console.log(path.basename("/node/base/path/xx/js/index.js", '.js')); // 最后输出 index
二:path.extname(path)
该方法返回path的扩展名,即从path的最后一部分中的最后一个.(句号)字符到字符串结束。如果path的最后一部分没有 . 或 path的文件名的第一个
字符是 . ,则返回一个空字符串。如下代码:
const path = require('path'); console.log(path.extname('index.html')); // .html console.log(path.extname('index.coffee.md')); // .md console.log(path.extname('index.')); // 返回 . console.log(path.extname('index')); // 返回 '' console.log(path.extname('.index')); // 返回 ''
如果path不是一个字符串,则抛出 TypeError; 如下:
console.log(path.extname(111)); // 抛出异常
三:path.dirname(path)
该方法返回一个path的目录名。如下代码:
const path = require('path'); const filepath = '/node/base/path/index.js'; console.log(path.dirname(filepath)); // 输出 /node/base/path
四:path.parse(path)
path.parse()方法返回一个对象,对象的属性表示path的元素。如下代码:
const path = require('path');
const filepath = '/node/base/path/index.js';
console.log(path.parse(filepath));
// 输出如下:
/*
{
root: '/',
dir: '/node/base/path',
base: 'index.js',
ext: '.js',
name: 'index'
}
*/
五:path.format(pathObject)
该方法会从一个对象返回一个路径字符串,与pase.parse()相反。
当pathObject提供的属性有组合时,有些属性的优先级比其他的高;
1. 如果提供了pathObject.dir,则pathObject.root 会被忽略。
2. 如果提供了 pathObject.base存在,则pathObject.ext 和 pathObject.name 会被忽略;
如下代码:
const path = require('path'); // 如果提供了pathObject.dir,则pathObject.root 会被忽略。
const str = {
root: '/ignored',
dir: '/node/base/path',
base: 'index.js',
ext: '.js',
name: 'index'
}; console.log(path.format(str)); // 输出 /node/base/path/index.js // 如果没有提供了pathObject.dir,则pathObject.root 会使用。
const str2 = {
root: '/',
base: 'index.js',
ext: '.js',
name: 'index'
}; console.log(path.format(str2)); // 输出 /index.js // 如果没有指定 'base', 则 'name' + 'ext' 会被使用 const str3 = {
root: '/',
ext: '.js',
name: 'index'
}; console.log(path.format(str3)); // 输出 /index.js
六:path.isAbsolute(path);
该方法会判定path是否为一个绝对路径。如果给定的path是一个长度为零的字符串,则返回false. 如下代码:
const path = require('path'); console.log(path.isAbsolute('/xxx/yy')); // true
console.log(path.isAbsolute('/xxx/')); // true
console.log(path.isAbsolute('xxxx/')); // false
console.log(path.isAbsolute('.')); // false
七:path.join([...paths])
该方法使用特定的分隔符把全部给定的path片段链接到一起,并规范生成的路径。
如下代码:
const path = require('path'); console.log(path.join('/node', 'www', 'local', 'html', ''));
// 输出 /node/www/local/html console.log(path.join('node', 11122, 'www'));
// 会报错,TypeError: Path must be a string. Received 11122
八:path.relative(from, to)
该方法返回从 from 到 to的相对路径(基于当前工作目录)。
如下代码:
const path = require('path'); console.log(path.relative('/data/xx/text/aa', '/data/xx/yyyy/bbb')); // 输出 ../../yyyy/bbb
九:path.resolve([from...], to);
将to分解成一个绝对路径。
如果to不是一个绝对路径的话,那么from会被优先考虑,直到找到一个绝对路径,如果在form内还没有找到绝对路径,就会使用当前的工作目录。
当然如果 to 是一个绝对路径的话,那么直接返回该绝对路径。
如下代码:
const path = require('path'); // to 不是一个绝对路径,form优先被考虑,直到找到一个绝对路径
console.log(path.resolve('/foo/bar', './baz')); // 返回 /foo/bar/baz // to 是一个绝对路径,那么久直接返回 to
console.log(path.resolve('/foo/bar', '/baz')); // 返回 /baz // 如果 from 和 to 都不是一个绝对路径的话,就会使用当前的工作目录 + form + to
console.log(path.resolve('foo', 'bar')); // 返回 /Users/tugenhua/个人demo/node0420/nodeUrl/foo/bar
NodeJS之path模块的更多相关文章
- NodeJS 笔记 path模块
path 模块,本模块包含一系列处理和转换文件路径的工具集. path.normalize(path) normalize函数将不符合规范的路径经过格式化转换为标准路径,解析路径中的.与..外,还 ...
- NodeJS中 Path 模块
var path = require('path'); // 当发现有多个连续的斜杠时,会替换成一个: 当路径末尾包含斜杠时,会保留: // 在 Windows 系统会使用反斜杠. var p = p ...
- 介绍nodejs中的path模块的几个方法
webpack中常用的: var path = require('path') 是nodejs中的path模块,介绍一下webpack中常用的几个path模块的方法: 应用node环境的时候,这个pa ...
- node path模块
一.在nodejs中path模块时使用频率很高的模块,其中不乏有很多API写得很模糊,但仔细琢磨下来,也不是很难理解. 1.获取文件所在路径 var path = require('path'); v ...
- nodejs 5.2.0文档自翻译——Path模块
模块方法概览 Path path.basename(p[, ext]) path.delimiter path.dirname(p) path.extname(p) path.format(pathO ...
- nodeJS之路径PATH模块
前面的话 path模块包含一系列处理和转换文件路径的工具集,通过 require('path') 可用来访问这个模块.本文将详细介绍path模块 路径组成 [path.dirname(p)] 返回路径 ...
- nodejs入门API之path模块
Path模块在各个系统上的差异 Path模块API解析 一.Path模块在各个系统上的差异 path模块提供用于处理文件路径和目录路径的使用工具. let path = require('path') ...
- NodeJs之Path
Path模块 NodeJs提供的Path模块,使得我们可以对文件路径进行简单的操作. API var path = require('path'); var path_str = '\\Users\\ ...
- node之path模块
node之path模块 原文链接 //引用该模块 var path = require("path"); 1.路径解析,得到规范化的路径格式 对window系统,目录分隔为'', ...
随机推荐
- mysql百万的数据快速创建索引
测试数据本机一张表users有100百万条记录.在创建此表前没有未相应字段添加索引,所以此时需要为表添加索引.但是因为数据量大的原因,索引添加可能不成功,想了很多办法,终于挖坑成功. 开始准备工作, ...
- linux下使用gcc编译运行C/C++程序
编译C 首先,程序编译过程有: 1.预处理(展开宏,头文件,检查代码是否有误) 2.编译(将.c转为汇编代码.s) 3.汇编(将汇编代码.s转为机器代码.o) 4.链接(将所有机器代码.o和库文件链 ...
- 【高并发解决方案】7、HAProxy安装和配置
简介 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案. HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要 ...
- Mysql锁原理浅谈
锁类型/引擎 行锁 表锁 页锁 MyISAM 有 InnoDB 有 有 BDB(被InnoDB取代) 有 有 锁的分类 表锁:开销小,加锁快,不会死锁,粒度大,冲突率高,并发低. 行锁:开销大,加锁慢 ...
- SVN多项目并行版本管理解决方案
1.背景 随着公司业务拓展,各业务部门频繁的需求变更,导致系统集成冲突的问题日益突出. 2.现状 基于SVN版本管理模式,多分支版本并行,分支合并主干交付.多分支开发存在依赖关系且有交付的先后顺序, ...
- Linux常用基本命令:三剑客命令之-awk基础用法
awk是一个超级强大的文本格式化处理工具,他与grep, sed命令被成为linux 三剑客命令 三剑客命令的特点: grep:只要用来匹配和查找文本 sed: 编辑匹配到文本 awk: 格式化文本, ...
- 从函数式编程到Promise
译者按: 近年来,函数式语言的特性都被其它语言学过去了.JavaScript异步编程中大显神通的Promise,其实源自于函数式编程的Monad! 原文: Functional Computation ...
- JS之iscroll.js的使用详解
入门 Scroll是一个类,每个需要使用滚动功能的区域均要进行初始化.每个页面上的iScroll实例数目在设备的CPU和内存能承受的范围内是没有限制的. 尽可能保持DOM结构的简洁.iScroll使用 ...
- python基础之数据的三大结构
python的三大数据结构 1.顺序 2.分支 3.循环 # if语句联系# 如果age小于18岁,则打印信息“未成年”age = 17if age <= 18: print("未成年 ...
- 喜闻乐见-Android简介
本文主要是对Android系统做一个简介,包括其架构.启动流程.沙箱机制.APK.Darlvik以及ART. 1. 架构 Android是基于Linux内核开发出的一个移动操作系统,系统结构大致可以分 ...