node.js之path
说到node.js,可能实际中用到node进行后台开发的公司不多,大部分人都没有开发后台的经验。但是也要了解node相关模块的用法,因为现在前端自动化脚本的构建,模块的打包越来越离不开node。特别是gulp或者webpack进行一些自动化操作的时候,node.js的重要性就体现出来了。说起来node毕竟是一个知识体系,所以想要几篇文章就描述清楚也是不可能的。本文就描述一下自动化构建中常用到的node的path模块。
path是有关文件或文件夹的路径的模块,提供了获取文件路径,对路径进行转化,取得相对或者绝对路径等方法。具体如下:
一、path.normalize(path) :标准化路径
var path = require('path');
/**
* 标准化路径
* */
var url1 = path.normalize('d/fec///sd///dsds');
var url2 = path.normalize('d/../..///ds');
console.dir('url1:'+url1);//'url1:d/fec/sd/dsds'
console.dir('url2:'+url2);//'url2:../ds'
二、path.join([path1], [path2], [...]),合并路径
/**
* 合并路径
* */
var url3 = path.join('/a','b','a.text'),
url4 = path.join('//','a','b');
console.dir('url3:'+url3);//'url3:/a/b/a.text'
console.dir('url4:'+url4);//'url4:/a/b'
三、path.resolve(a, b)获取a到b的绝对路径
/**
* 获取a到b的绝对路径
* 参数相当于执行路径转换的操作
* */
var url5 = path.resolve('E','b/a','../b/c','a.text'),
url6 = path.resolve('C','../D/a','../../A','s/a.text');
console.dir('url5:'+url5);//'url5:/Users/panqianjin/node/NodeCnpm/src/nodeApi/E/b/b/c/a.text'
console.dir('url6:'+url6);//'url6:/Users/panqianjin/node/NodeCnpm/src/nodeApi/A/s/a.text'
四、path.isAbsolute(path):是否为绝对路径
/**
* 是否为绝对路径
* */
var url7 = path.isAbsolute('/E/a'),
url8 = path.isAbsolute('../c/a');
console.dir('url7:'+url7);//'url7:true'
console.dir('url8:'+url8);//'url8:false'
五、path.relative(a, b):a到b的相对路径。a、b为绝对路径
/**
* 获取a到b的相对路径
* 参数为绝对路径,是resolve的逆操作
* */
var url9 = path.relative('E:/a','C:/d/b'),
url10 = path.relative('c/c/a','c/b');
console.dir('url9:'+url9);//'url9:../../C:/d/b'
console.dir('url10:'+url10);//'url10:../../b'
六、path.dirname(path):返回路径中文件夹的路径
path.basename(path):返回路径中的最后一部分,即dirname余下的部分
path.extname(path):若存在返回文件的扩展名,否则为空
/**
* 返回路径中文件夹的路径
* */
var url11 = path.dirname('E:/a/C/d/b.text'),
url12 = path.dirname('c/c/a/');
console.dir('url11:'+url11);//'url11:E:/a/C/d'
console.dir('url12:'+url12);//'url12:c/c'
/**
* 返回路径中的最后一部分,为dirname余下的部分
* */
var url13 = path.basename('E:/a/C/d/b.text'),
url14 = path.basename('c/c/a/');
console.dir('url13:'+url13);//'url13:b.text'
console.dir('url14:'+url14);//'url14:a'
/**
* 若存在返回文件的扩展名,否则为空
* */
var url15 = path.extname('E:/a/C/d/b.text'),
url16 = path.extname('c/c/a/');
console.dir('url15:'+url15);//'url15:.text'
console.dir('url16:'+url16);//'url16:'
七、path.sep:对应平台下的文件夹分隔符
path.delimiter:对应平台下的路径分隔符
/**
* 对应平台下的文件夹分隔符
* mac下为/
* */
var url17 = path.sep,
url18 = 'c/c/a/'.split(path.sep);
console.dir('url17:'+url17);//'url17:/'
console.dir('url18:'+url18);//'url18:c,c,a'
/**
* 对应平台下的路径分隔符
* mac下为:
* */
var url17 = path.delimiter;
console.dir('url17:'+url17);//'url17::''
path模块基本api和用法就是这样了,掌握了这些,在使用gulp或webpack的时候会更有效率的。
node.js之path的更多相关文章
- Node.js _dirname & path All In One
Node.js _dirname & path All In One file path 相对路径 绝对路径 _dirname https://nodejs.org/docs/latest/a ...
- node.js中path路径模块的使用
path模块是node.js中处理路径的核心模块.可以很方便的处理关于文件路径的问题. join() 将多个参数值合并成一个路径 const path = require('path'); conso ...
- Node.js:path、url、querystring模块
Path模块 该模块提供了对文件或目录路径处理的方法,使用require('path')引用. 1.获取文件路径最后部分basename 使用basename(path[,ext])方法来获取路径的最 ...
- node.js(四)path优化(路径优化)
1.normalize函数的基本用法 normalize函数将不符合规范的路径经过格式化转换为标准路径,解析路径中的.与..外,还能去掉多余的斜杠. 如下示例: var path = require( ...
- node.js的path模块
path模块的各种API path.join([...paths]) 参数:paths <string> ,paths参数是字符串,这些字符串按路径片段顺序排列,(A sequence o ...
- 极简 Node.js 入门 - 2.1 Path
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...
- Node.js 自学之旅
学习基础,JQuery 原生JS有一定基础,有自己一定技术认知(ps:原型链依然迷糊中.闭包6不起来!哎!) 当然最好有语言基础,C#,java,PHP等等.. 最初学习这个东西的原因很简单,在园子里 ...
- [Node.js] Serve Static Files with Express
In this lesson we will find out how to serve static assets (images, css, stylesheets, etc.) with Exp ...
- Node.js 自学之旅(初稿篇)
学习基础,JQuery 原生JS有一定基础,有自己一定技术认知(ps:原型链依然迷糊中.闭包6不起来!哎!) 当然最好有语言基础,C#,java,PHP等等.. 最初学习这个东西的原因很简单,在园子里 ...
随机推荐
- [软件工程] 查找二维数组最大子数组的之和 郭莉莉&李亚文
一. 在主函数中实现二维数组的输入. 代码主要函数maxson(),主要利用for()循环先查找出最大字数组的四角的坐标xmin,xmax,ymin,ymax来确定最大子数组, 在循环中算出之和,编写 ...
- Firefly安装ROS及ssh远程登录配置
一.在Linux firefly 3.10.0 上安装ROS-indigo 快捷键 CTRL + ALT + T 打开终端并安装ROS-indigo sudo sh -c 'echo "d ...
- Android Dex文件格式(一)
dex是Android平台上(Dalvik虚拟机)的可执行文件, 相当于Windows平台中的exe文件, 每个Apk安装包中都有dex文件, 里面包含了该app的所有源码, 通过反编译工具可以获取到 ...
- WIN7环境下CUDA7.5的安装、配置和测试(Visual Studio 2010)
以下基于"WIN7(64位)+Visual Studio 2010+CUDA7.5". 系统:WIN7,64位 开发平台:Visual Studio 2010 显卡:NVIDIA ...
- Java 的replace和replaceAll的使用
(1)replace() 方法通过用 newChar 字符替换字符串中出现的所有 oldChar 字符,并返回替换后的新字符串. public String replace(char oldChar, ...
- bootstrop验证手机号
formValidate($form,getRules(),getMessages()); function getRules(){ return { "memberViewVo.membe ...
- Sum All Primes
function sumPrimes(num) { //return num; var arr = []; var ifPrime = function(num){ if(num < 2){ r ...
- SVM学习笔记(一):libsvm参数说明(转)
LIBSVM 数据格式需要---------------------- 决策属性 条件属性a 条件属性b ... 2 1:7 2:5 ... 1 1:4 2:2 ... 数据格式转换--------- ...
- js 两数相减
var SecondPrice = document.getElementById("txtSecondPrice"); //秒杀价 var MarketP ...
- 模糊测试(Fuzz testing)
模糊测试(fuzz testing)是一种安全测试方法,他介于完全的手工测试和完全的自动化测试之间.为什么是介于那两者之间?首先完全的手工测试即是渗透测试,测试人员可以模拟黑客恶意进入系统.查找漏洞, ...