说到node.js,可能实际中用到node进行后台开发的公司不多,大部分人都没有开发后台的经验。但是也要了解node相关模块的用法,因为现在前端自动化脚本的构建,模块的打包越来越离不开node。特别是gulp或者webpack进行一些自动化操作的时候,node.js的重要性就体现出来了。说起来node毕竟是一个知识体系,所以想要几篇文章就描述清楚也是不可能的。本文就描述一下自动化构建中常用到的node的path模块。

  path是有关文件或文件夹的路径的模块,提供了获取文件路径,对路径进行转化,取得相对或者绝对路径等方法。具体如下:

  一、path.normalize(path) :标准化路径

  1. var path = require('path');
  2. /**
  3. * 标准化路径
  4. * */
  5. var url1 = path.normalize('d/fec///sd///dsds');
  6. var url2 = path.normalize('d/../..///ds');
  7. console.dir('url1:'+url1);//'url1:d/fec/sd/dsds'
  8. console.dir('url2:'+url2);//'url2:../ds'

  二、path.join([path1], [path2], [...]),合并路径

  1. /**
  2. * 合并路径
  3. * */
  4. var url3 = path.join('/a','b','a.text'),
  5. url4 = path.join('//','a','b');
  6. console.dir('url3:'+url3);//'url3:/a/b/a.text'
  7. console.dir('url4:'+url4);//'url4:/a/b'

  三、path.resolve(a, b)获取a到b的绝对路径

  1. /**
  2. * 获取a到b的绝对路径
  3. * 参数相当于执行路径转换的操作
  4. * */
  5. var url5 = path.resolve('E','b/a','../b/c','a.text'),
  6. url6 = path.resolve('C','../D/a','../../A','s/a.text');
  7. console.dir('url5:'+url5);//'url5:/Users/panqianjin/node/NodeCnpm/src/nodeApi/E/b/b/c/a.text'
  8. console.dir('url6:'+url6);//'url6:/Users/panqianjin/node/NodeCnpm/src/nodeApi/A/s/a.text'

  四、path.isAbsolute(path):是否为绝对路径

  1. /**
  2. * 是否为绝对路径
  3. * */
  4. var url7 = path.isAbsolute('/E/a'),
  5. url8 = path.isAbsolute('../c/a');
  6. console.dir('url7:'+url7);//'url7:true'
  7. console.dir('url8:'+url8);//'url8:false'

  五、path.relative(a, b):a到b的相对路径。a、b为绝对路径

  1. /**
  2. * 获取a到b的相对路径
  3. * 参数为绝对路径,是resolve的逆操作
  4. * */
  5. var url9 = path.relative('E:/a','C:/d/b'),
  6. url10 = path.relative('c/c/a','c/b');
  7. console.dir('url9:'+url9);//'url9:../../C:/d/b'
  8. console.dir('url10:'+url10);//'url10:../../b'

  六、path.dirname(path):返回路径中文件夹的路径

    path.basename(path):返回路径中的最后一部分,即dirname余下的部分

    path.extname(path):若存在返回文件的扩展名,否则为空

  1. /**
  2. * 返回路径中文件夹的路径
  3. * */
  4. var url11 = path.dirname('E:/a/C/d/b.text'),
  5. url12 = path.dirname('c/c/a/');
  6. console.dir('url11:'+url11);//'url11:E:/a/C/d'
  7. console.dir('url12:'+url12);//'url12:c/c'
  8. /**
  9. * 返回路径中的最后一部分,为dirname余下的部分
  10. * */
  11. var url13 = path.basename('E:/a/C/d/b.text'),
  12. url14 = path.basename('c/c/a/');
  13. console.dir('url13:'+url13);//'url13:b.text'
  14. console.dir('url14:'+url14);//'url14:a'
  15. /**
  16. * 若存在返回文件的扩展名,否则为空
  17. * */
  18. var url15 = path.extname('E:/a/C/d/b.text'),
  19. url16 = path.extname('c/c/a/');
  20. console.dir('url15:'+url15);//'url15:.text'
  21. console.dir('url16:'+url16);//'url16:'

  七、path.sep:对应平台下的文件夹分隔符

    path.delimiter:对应平台下的路径分隔符

  1. /**
  2. * 对应平台下的文件夹分隔符
  3. * mac下为/
  4. * */
  5. var url17 = path.sep,
  6. url18 = 'c/c/a/'.split(path.sep);
  7. console.dir('url17:'+url17);//'url17:/'
  8. console.dir('url18:'+url18);//'url18:c,c,a'
  9. /**
  10. * 对应平台下的路径分隔符
  11. * mac下为:
  12. * */
  13. var url17 = path.delimiter;
  14. console.dir('url17:'+url17);//'url17::''

  path模块基本api和用法就是这样了,掌握了这些,在使用gulp或webpack的时候会更有效率的。  

node.js之path的更多相关文章

  1. Node.js _dirname & path All In One

    Node.js _dirname & path All In One file path 相对路径 绝对路径 _dirname https://nodejs.org/docs/latest/a ...

  2. node.js中path路径模块的使用

    path模块是node.js中处理路径的核心模块.可以很方便的处理关于文件路径的问题. join() 将多个参数值合并成一个路径 const path = require('path'); conso ...

  3. Node.js:path、url、querystring模块

    Path模块 该模块提供了对文件或目录路径处理的方法,使用require('path')引用. 1.获取文件路径最后部分basename 使用basename(path[,ext])方法来获取路径的最 ...

  4. node.js(四)path优化(路径优化)

    1.normalize函数的基本用法 normalize函数将不符合规范的路径经过格式化转换为标准路径,解析路径中的.与..外,还能去掉多余的斜杠. 如下示例: var path = require( ...

  5. node.js的path模块

    path模块的各种API path.join([...paths]) 参数:paths <string> ,paths参数是字符串,这些字符串按路径片段顺序排列,(A sequence o ...

  6. 极简 Node.js 入门 - 2.1 Path

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

  7. Node.js 自学之旅

    学习基础,JQuery 原生JS有一定基础,有自己一定技术认知(ps:原型链依然迷糊中.闭包6不起来!哎!) 当然最好有语言基础,C#,java,PHP等等.. 最初学习这个东西的原因很简单,在园子里 ...

  8. [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 ...

  9. Node.js 自学之旅(初稿篇)

    学习基础,JQuery 原生JS有一定基础,有自己一定技术认知(ps:原型链依然迷糊中.闭包6不起来!哎!) 当然最好有语言基础,C#,java,PHP等等.. 最初学习这个东西的原因很简单,在园子里 ...

随机推荐

  1. sga_target大于sga_max_size数据库无法启动

    环境:oracle 11g 单机 操作过程:由于修改SGA的大小,只修sga_max_size,没有修改sga_target,改导sga_max_size大于sga_target的大小,使得数据库无法 ...

  2. centos 6.5 查看、开启,关闭 端口

    查看所有端口   netstat -ntlp   1.开启端口(以80端口为例)         方法一:            /sbin/iptables -I INPUT -p tcp --dp ...

  3. mysql 常用查询

    1.unix时间戳的使用 unix_timesamp.from_unixtime 函数 和 datatime_format函数. // 从datetime 类型取做整形 unixtime时间戳; se ...

  4. 【POJ2699】The Maximum Number of Strong Kings(二分,最大流)

    题意: 有n个队伍,两两都有比赛 知道最后每支队伍获胜的场数 求最多有多少队伍,他们战胜了所有获胜场数比自己多的队伍,这些队伍被称为SK N<=50 思路:把每个队伍和它们两两之间的比赛都当做点 ...

  5. 使用dd命令克隆整个系统(转)

    神奇的ghost的原理是什么呢?不就是数据复制吗?Linux下的dd命令不就是最强大的数据复制工具!          既然如此,我为什么要使用g4l这样复杂的工具呢?一条dd命令不就可以帮我实现任意 ...

  6. python 面向对象-笔记

    1.如何创建类 class 类名: pass class bar: pass 2.创建方法 构造方法,__init__(self,arg) obj = 类('a1') 普通方法 obj = 类(‘xx ...

  7. TCP发消息续传文件

    1.自定义固定协议头部.格式:([head][body][filestream]) /// <summary> /// 数据包头部 /// </summary> [Struct ...

  8. java_method_stringUtils

    /** * 字符串英文单双引号处理,将中英文引号转为中文的引号 * @param temp * @return */ public static String getStringDatabase(St ...

  9. Android环境配置及运行helloWord案例

      Android的环境搭建步骤,以及输出一个helloWorder 1:下载Android开发环境   及是: SDK adt-bundle-windows-x86_64-20140702 此时的版 ...

  10. Python:进程

    由于GIL的存在,python一个进程同时只能执行一个线程.因此在python开发时,计算密集型的程序常用多进程,IO密集型的使用多线程 1.多进程创建: #创建方法1:将要执行的方法作为参数传给Pr ...