Path模块

该模块提供了对文件或目录路径处理的方法,使用require('path')引用。

1、获取文件路径最后部分basename

使用basename(path[,ext])方法来获取路径的最后一部分,参数ext是后缀名,如下所示:

var bname = path.basename('../test.txt');
console.log(bname);//test.txt
var bname = path.basename('../test.txt','.txt');
console.log(bname);//test

2、获取文件路径目录部分dirname

使用dirname(path)方法来获取路径目录部分,如下所示:

console.log(path.dirname('../canvasDemo/axis/axis.css'));//../canvasDemo/axis

3、获取后缀名

使用extname(path)方法来后缀名,该方法是截取最后的'.'点到结束的字符串,如果点不存在,则返回空字符串,如果点在最后则直接返回点,如下所示:

console.log(path.extname('../test.txt'),path.extname('../test.'),path.extname('../test'));//.txt . 空

4、获取当前平台的文件分隔符和路径分隔符

path.sep返回文件分隔符,path.delimiter获取路径分隔符,它们都是操作系统决定的,如下所示:

console.log(path.sep);// \
console.log(path.delimiter);// ;

5文件路径分析

使用path.parse(path)方法对一个路径进行分析,然后返回一个对象,该对象拥有5个属性,分别是:root,dir,base,ext,name。使用如下所示:

var obj = path.parse('../canvasDemo/axis/axis.css');
console.log(obj);
/*{ root: '',
dir: '../canvasDemo/axis',
base: 'axis.css',
ext: '.css',
name: 'axis' }*/

URL模块

url模块提供对url解析的方法,使用require('url')引用。Url统一资源定位器,主要包涵以下部分,如下所示:

![URL组成] (http://images.cnblogs.com/cnblogs_com/zmxmumu/679290/o_QQ截图20161128110540.jpg)

1、url解析

使用url.parse(urlString[, parseQueryString[, slashesDenoteHost]])方法对一个url字符串进行解析,解析成功后返回一个包含上图所示字段的对象,参数parseQueryString是一个布尔值,如果设置为true,则自动使用querystring模块的parse方法对查询字符串进行解析,否则返回原始字符串,默认为false。使用如下所示:

var url = require('url');
var urlObj = url.parse('https://nodejs.org:443/dist/latest-v6.x/docs/api/url.html?ver=011#url_urlobject_auth');
for(var i in urlObj){
if(urlObj.hasOwnProperty(i)){
console.log(i+':'+urlObj[i]);
}
}

执行即如果如下所示:

E:\developmentdocument\nodejsdemo>node url-example.js

protocol:https:

slashes:true

auth:null

host:nodejs.org:80

port:80

hostname:nodejs.org

hash:#url_urlobject_auth

search:?ver=011

query:ver=011

pathname:/dist/latest-v6.x/docs/api/url.html

path:/dist/latest-v6.x/docs/api/url.html?ver=011

href:https://nodejs.org:80/dist/latest-v6.x/docs/api/url.html?ver=011#url_urlob

ject_auth

2、将urlObject转换成url字符串

使用url.format(urlObject)方法可以将一个urlObject对象转换成格式化的url字符串,使用如下所示:

console.log(url.format(urlObj));//https://nodejs.org:80/dist/latest-v6.x/docs/api/url.html?ver=011#url_urlob

querystring模块

该模块可以用来解析和格式化URL查询字符串,使用require('querystring')进行引用。

1、解析查询字符串

方法querystring.parse(str[, sep[, eq[, options]]])可以解析一个查询字符串,转换成key-value键值对,参数含义如下:

  • sep:指定每个键值对的分隔符,默认为"&"
  • eq:指定key-value的分隔符,默认为"="

    使用如下所示:
const qs = require('querystring');
const searchStr = 'name=zhangsan&age=20';
const str = 'name*lisi^age*20'; console.log(qs.parse(searchStr));//{ name: 'zhangsan', age: '20' }
console.log(qs.parse(str,'^','*'));//{ name: 'lisi', age: '20' }

2、将对象转换成查询字符串

方法querystring.stringify(obj[, sep[, eq[, options]]])可以将一个对象格式化成一个url查询字符串,参数含义跟parse一样,使用如下所示:

const obj = { kw:'你好',num:1 };
const o2 = { name:['zhangsan','lisi'],age:20 };
console.log(qs.stringify(obj));//kw=%E4%BD%A0%E5%A5%BD&num=1
console.log(qs.stringify(o2));//name=zhangsan&name=lisi&age=20

Node.js:path、url、querystring模块的更多相关文章

  1. 34.node.js之Url & QueryString模块

    转自:https://i.cnblogs.com/posts?categoryid=1132005&page=6//引用 var url = require("url"); ...

  2. Node.js Path 模块

    Node.js path 模块提供了一些用于处理文件路径的小工具,我们可以通过以下方式引入该模块: var path = require("path") 方法 序号 方法 & ...

  3. node.js中使用http模块创建服务器和客户端

    node.js中的 http 模块提供了创建服务器和客户端的方法,http 全称是超文本传输协议,基于 tcp 之上,属于应用层协议. 一.创建http服务器 const http = require ...

  4. node.js获取url中的各个参数

    实例代码test.js var http=require('http'); var url=require('url'); var querystring=require('querystring') ...

  5. node.js(七) 子进程 child_process模块

    众所周知node.js是基于单线程模型架构,这样的设计可以带来高效的CPU利用率,但是无法却利用多个核心的CPU,为了解决这个问题,node.js提供了child_process模块,通过多进程来实现 ...

  6. node.js第二天之模块

    一.模块的定义 1.在Node.js中,以模块为单位划分所有功能,并且提供了一个完整的模块加载机制,这时的我们可以将应用程序划分为各个不同的部分. 2.狭义的说,每一个JavaScript文件都是一个 ...

  7. node.js当中的http模块与url模块的简单介绍

    一.http模块的简单介绍 node.js当中的http内置模块可以用于创建http服务器与http客户端. 1.引包 const http = require('http'); 2.创建http服务 ...

  8. 转 node.js里面的http模块深入理解

    问题1:HTTP服务继承了TCP服务模型,是从connection为单位的服务到以request为单位的服务的封装,那么request事件何时触发? 注意:在开启keepalive后,一个TCP会话可 ...

  9. node.js的fs核心模块读写文件操作 -----由浅入深

    node.js 里fs模块 常用的功能 实现文件的读写 目录的操作 - 同步和异步共存 ,有异步不用同步 - fs.readFile 都不能读取比运行内存大的文件,如果文件偏大也不会使用readFil ...

  10. node.js中fs文件系统模块的使用

    node.js中为我们提供了fs文件系统模块,实现对文件或目录的创建,修改和删除等操作. fs模块中,所有的方法分为同步和异步两种实现. 有 sync 后缀的方法为同步方法,没有 sync 后缀的方法 ...

随机推荐

  1. 通过一个demo了解Redux

    TodoList小demo 效果展示 项目地址 (单向)数据流 数据流是我们的行为与响应的抽象:使用数据流能帮我们明确了行为对应的响应,这和react的状态可预测的思想是不谋而合的. 常见的数据流框架 ...

  2. android 使用Tabhost 发生could not create tab content because could not find view with id 错误

    使用Tabhost的时候经常报:could not create tab content because could not find view with id 错误. 总结一下发生错误的原因,一般的 ...

  3. MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...

  4. html中返回上一页的各种写法【转】

    超链接返回上一页代码: <a href="#" onClick="javascript :history.back(-1);">返回上一页</ ...

  5. 【JQ基础】数组

    each() 方法规定为每个匹配元素规定运行的函数.

  6. 如何区别数据库删除语句drop与delete与truncate?

    1.delete:删除数据表中的行(可以删除某一行,也可以在不删除数据表的情况下删除所有行) 删除某一行:delete from 数据表名称 where 列名称=值: 删除所有行:delete*fro ...

  7. java中的内部类总结

    内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类 如同一个人是由大脑.肢体.器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液.跳动) 显然, ...

  8. 解决开启服务器防火墙导致ftp不能连接的问题

    在防火墙设置的"高级"选项卡中的"网络连接设置"--"本地连接"--"设置"中添加了"FTP服务器" ...

  9. Windows 上安装 Jekyll.

    Jekyll是一个静态网站生成工具.它允许用户使用HTML.Markdown或Textile来建立静态页面,然后通过模板引擎Liquid(Liquid Templating Engine)来运行. 原 ...

  10. 抛弃jQuery:DOM API之操作元素

    原文链接:http://blog.garstasio.com/you-dont-need-jquery/dom-manipulation/ 我的Blog:http://cabbit.me/you-do ...