Node.js:path、url、querystring模块
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模块的更多相关文章
- 34.node.js之Url & QueryString模块
转自:https://i.cnblogs.com/posts?categoryid=1132005&page=6//引用 var url = require("url"); ...
- Node.js Path 模块
Node.js path 模块提供了一些用于处理文件路径的小工具,我们可以通过以下方式引入该模块: var path = require("path") 方法 序号 方法 & ...
- node.js中使用http模块创建服务器和客户端
node.js中的 http 模块提供了创建服务器和客户端的方法,http 全称是超文本传输协议,基于 tcp 之上,属于应用层协议. 一.创建http服务器 const http = require ...
- node.js获取url中的各个参数
实例代码test.js var http=require('http'); var url=require('url'); var querystring=require('querystring') ...
- node.js(七) 子进程 child_process模块
众所周知node.js是基于单线程模型架构,这样的设计可以带来高效的CPU利用率,但是无法却利用多个核心的CPU,为了解决这个问题,node.js提供了child_process模块,通过多进程来实现 ...
- node.js第二天之模块
一.模块的定义 1.在Node.js中,以模块为单位划分所有功能,并且提供了一个完整的模块加载机制,这时的我们可以将应用程序划分为各个不同的部分. 2.狭义的说,每一个JavaScript文件都是一个 ...
- node.js当中的http模块与url模块的简单介绍
一.http模块的简单介绍 node.js当中的http内置模块可以用于创建http服务器与http客户端. 1.引包 const http = require('http'); 2.创建http服务 ...
- 转 node.js里面的http模块深入理解
问题1:HTTP服务继承了TCP服务模型,是从connection为单位的服务到以request为单位的服务的封装,那么request事件何时触发? 注意:在开启keepalive后,一个TCP会话可 ...
- node.js的fs核心模块读写文件操作 -----由浅入深
node.js 里fs模块 常用的功能 实现文件的读写 目录的操作 - 同步和异步共存 ,有异步不用同步 - fs.readFile 都不能读取比运行内存大的文件,如果文件偏大也不会使用readFil ...
- node.js中fs文件系统模块的使用
node.js中为我们提供了fs文件系统模块,实现对文件或目录的创建,修改和删除等操作. fs模块中,所有的方法分为同步和异步两种实现. 有 sync 后缀的方法为同步方法,没有 sync 后缀的方法 ...
随机推荐
- React在开发中的常用结构以及功能详解
一.React什么算法,什么虚拟DOM,什么核心内容网上一大堆,请自行google. 但是能把算法说清楚,虚拟DOM说清楚的聊聊无几.对开发又没卵用,还不如来点干货看看咋用. 二.结构如下: impo ...
- Beanstalkd一个高性能分布式内存队列系统
高性能离不开异步,异步离不开队列,内部是Producer-Consumer模型的原理. 设计中的核心概念: job:一个需要异步处理的任务,是beanstalkd中得基本单元,需要放在一个tube中: ...
- webpack+react+redux+es6开发模式
一.预备知识 node, npm, react, redux, es6, webpack 二.学习资源 ECMAScript 6入门 React和Redux的连接react-redux Redux 入 ...
- 如何利用ETW(Event Tracing for Windows)记录日志
ETW是Event Tracing for Windows的简称,它是Windows提供的原生的事件跟踪日志系统.由于采用内核(Kernel)层面的缓冲和日志记录机制,所以ETW提供了一种非常高效的事 ...
- Java 字符串格式化详解
Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...
- [原] KVM 虚拟化原理探究(5)— 网络IO虚拟化
KVM 虚拟化原理探究(5)- 网络IO虚拟化 标签(空格分隔): KVM IO 虚拟化简介 前面的文章介绍了KVM的启动过程,CPU虚拟化,内存虚拟化原理.作为一个完整的风诺依曼计算机系统,必然有输 ...
- WPF CheckBox 样式
<Style x:Key="FocusVisual"> <Setter Property="Control.Template"> < ...
- 2016/12/31_Python
今天学习主要内容: Python: 1.with语句(补充昨天的文件操作) 用with打开的文件在脚本结束会自动关闭,以防普通打开方式忘记关闭文件连接 语法: with open("demo ...
- web 前端(轮番插件)
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8& ...
- Android事件分发机制浅谈(一)
---恢复内容开始--- 一.是什么 我们首先要了解什么是事件分发,通俗的讲就是,当一个触摸事件发生的时候,从一个窗口到一个视图,再到一个视图,直至被消费的过程. 二.做什么 在深入学习android ...