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 后缀的方法 ...
随机推荐
- Hadoop 中利用 mapreduce 读写 mysql 数据
Hadoop 中利用 mapreduce 读写 mysql 数据 有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...
- ASP.NET是如何在IIS下工作的
ASP.NET与IIS是紧密联系的,由于IIS6.0与IIS7.0的工作方式的不同,导致ASP.NET的工作原理也发生了相应的变化. IIS6(IIS7的经典模式)与IIS7的集成模式的不同 IIS6 ...
- .net windows Kafka 安装与使用入门(入门笔记)
完整解决方案请参考: Setting Up and Running Apache Kafka on Windows OS 在环境搭建过程中遇到两个问题,在这里先列出来,以方便查询: 1. \Jav ...
- javascript单元测试框架mochajs详解
关于单元测试的想法 对于一些比较重要的项目,每次更新代码之后总是要自己测好久,担心一旦上线出了问题影响的服务太多,此时就希望能有一个比较规范的测试流程.在github上看到牛逼的javascript开 ...
- C#中如何在Excel工作表创建混合型图表
在进行图表分析的时候,我们可能需要在一张图表呈现两个或多个样式的图表,以便更加清晰.直观地查看不同的数据大小和变化趋势.在这篇文章中,我将分享C#中如何在一张图表中创建不同的图表类型,其中包括如何在同 ...
- C# 对象实例化 用json保存 泛型类 可以很方便的保存程序设置
用于永久化对象,什么程序都行,依赖NewtonSoft.用于json序列化和反序列化. using Newtonsoft.Json; using System; using System.Collec ...
- Linux杀死进程,查看进程
http://blog.csdn.net/wojiaopanpan/article/details/7286430/
- javascript排序
利用array中的sort()排序 w3cfunction sortNumber(a,b) { return a - b } var arr = new Array(6) arr[0] = " ...
- css3制作旋转动画
现在的css3真是强大,之前很多动画都是用jq来实现,但是css3制作的动画要比jq实现起来简单很多,今天呢,我自己也写了一个css旋转动画和大家分享.效果如下面的图片 思路:1.制作之前呢,我们先来 ...
- Android中Activity运行时屏幕方向与显示方式详解
现在我们的手机一般都内置有方向感应器,手机屏幕会根据所处位置自动进行横竖屏切换(前提是未锁定屏幕方向).但有时我们的应用程序仅限在横屏或者竖屏状态下才可以运行,此时我们需要锁定该程序Activity运 ...