nodejs常用模块-url

URL

nodejs中针对url的常用方法。
node下打印url,结果:
这里写图片描述
引入url模块

var url = require('url')

1、parse方法

将url解析成对象,parse方法原型:

url.parse(urlStr[, parseQueryString][, slashesDenoteHost])

可传递三个参数,第一个必须
urlStr:要解析成对象的url字符串
parseQueryString:是否解析查询参数,默认为false
slashesDenoteHost:是否以斜线解析主机名,默认为false

只给第一个参数:

var url = require('url');var testUrl1 = 'z.qingk.cn/information-info/tengzhou/e75bab8405254b04b2fab0a9f54e4838/dbvbotovboussowbwssvossdqaxqssxw/7519fbc4d85ea4c3589d8d751c507222/b011a8c5bbab4050953cb722bccb5095?param1=111&param2=222'
var urlParseUrl1 = url.parse(testUrl1)
console.log(urlParseUrl1);

结果:
这里写图片描述

第二个参数设为true
也就是说要同时把url中?之后的查询参数解析成对象

var url = require('url');var testUrl1 = 'z.qingk.cn/information-info/tengzhou/e75bab8405254b04b2fab0a9f54e4838/dbvbotovboussowbwssvossdqaxqssxw/7519fbc4d85ea4c3589d8d751c507222/b011a8c5bbab4050953cb722bccb5095?param1=111&param2=222'
var urlParseUrl1 = url.parse(testUrl1);
console.log(urlParseUrl1);var urlParseUrl2 = url.parse(testUrl1,true);
console.info(urlParseUrl2);

结果:
这里写图片描述
第三个参数设置为true
也就是当不知道url协议时,以//为依据识别host

var testUrl2 = '//z.qingk.cn/information-info/tengzhou/e75bab8405254b04b2fab0a9f54e4838/dbvbotovboussowbwssvossdqaxqssxw/7519fbc4d85ea4c3589d8d751c507222/b011a8c5bbab4050953cb722bccb5095?param1=111&param2=222';var urlParseUrl3 = url.parse(testUrl2,false,false);
console.info(urlParseUrl3);var urlParseUrl4 = url.parse(testUrl2,false,true);
console.info(urlParseUrl4);

结果:
这里写图片描述

2、format方法

format就是parse的返过程,把对象转换成url字符串

var testObj1 = {protocol: null,slashes: true,auth: null,host: 'z.qingk.cn',port: null,hostname: 'z.qingk.cn',hash: null,search: '?param1=111&param2=222',query: 'param1=111&param2=222',pathname: '/information-info/tengzhou/e75bab8405254b04b2fab0a9f54e4838/dbvbotovboussowbwssvossdqaxqssxw/7519fbc4d85ea4c3589d8d751c507222/b011a8c5bbab4050953cb722bccb5095',path: '/information-info/tengzhou/e75bab8405254b04b2fab0a9f54e4838/dbvbotovboussowbwssvossdqaxqssxw/7519fbc4d85ea4c3589d8d751c507222/b011a8c5bbab4050953cb722bccb5095?param1=111&param2=222',href: '//z.qingk.cn/information-info/tengzhou/e75bab8405254b04b2fab0a9f54e4838/dbvbotovboussowbwssvossdqaxqssxw/7519fbc4d85ea4c3589d8d751c507222/b011a8c5bbab4050953cb722bccb5095?param1=111&param2=222'};
var rsUrl = url.format(testObj1);
console.info(rsUrl)

结果:

//z.qingk.cn/information-info/tengzhou/e75bab8405254b04b2fab0a9f54e4838/dbvbotovboussowbwssvossdqaxqssxw/7519fbc4d85ea4c3589d8d751c507222/b011a8c5bbab4050953cb722bccb5095?param1=111&param2=222

parse中每一种形式的url所生成的结果,format都可以进行逆过程的转换。

3、resolve方法

返回从根目录指定到当前目录的绝对路径url。返回结果去除参数和锚点,返回结果标准url路径格式

    var url=require('url');  //指定相对路径  var url1=url.resolve('http://qingk.cn/one/two/three','four');  console.log(url1); //http://qingk.cn/one/two/four  //指定根目录的相对路径  var url3=url.resolve('http://qingk.cn/one/two/three','/four');  console.log(url3); //http://qingk.cn/four  //带参数的相对路径  var url2=url.resolve('http://qingk.cn/one/two/three?name=zhangsan','four');  console.log(url2); //http://qingk.cn/one/two/four  //非标准分隔符的原路径  var url4=url.resolve('http://qingk.cn\\one#name1','/four');  console.log(url4);//http://qingk.cn/four  //非标准分隔符的相对路径  var url5=url.resolve('http://qingk.cn/one','\\two\\three');  console.log(url5);//http://qingk.cn/two/three  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/247610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常用的javascript设计模式

请坚持 什么是设计模式 百度百科: 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。 使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式…

express项目创建

1、安装项目生成器 cnpm i express-generator -g express4.0以后,express与express-generator包分离,全局使用express命令生成项目骨架时应该安装express-generator包。 2、生成项目骨架 express server 默认使用的是jade模板,使用ejs模…

设置Jexus开机启动

把jexus做成系统服务,就像windows服务一样,可以设置开机启动就可以了。 第一、进入目录 /lib/systemd/system/ 第二、新建文件 vi jexus.service 文件内容 [Unit] Descriptionjexus Afternetwork.target[Service] Typeforking ExecStart/usr/jexus/jw…

iOS警告-This block declaration is not a prototype

关于警告 我们定义一个不带参数的block,通常是如下的方式 1typedefvoid (^UpdateSwichBtnBlock)();在xcode9中会提示一个警告 12This block declaration is not a prototypeInsert ‘void解决方式可以是如下的几种 1typedefvoid (^UpdateSwichBtnBlock)(void);但是这样,很多第三…

mac环境mongodb安装与配置

一、安装 MAC环境安装mongodb有两种方式,一种方式是通过下载安装包,另一种方式是通过homebrew。 1、安装包方式 从mongodb官网可以下载MAC安装包:https://www.mongodb.com/download-center#community 或者使用curl下载 # 进入 /usr/loca…

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型...

以下为借鉴 var stack1 [], stack2[]; function push(node){stack1.push(node);}function pop(){if(stack2.length){return stack2.pop();}else{if(stack1.length){var len stack1.length;for(var i0;i<len;i){stack2.push(stack1.pop());}return stack2.pop()}else{retur…

使用CocoaPods导入百度地图SDK所遇到的坑

执行pod install遇到的问题:解决方安:百度了下,发现pod install命令被墙了,换成pod install --verbose --no-repo-update

NSTimer不准确与GCDTimer详解

NSTimer不准&#xff0c;scheduleTimer放在runloop里面&#xff0c;受runloop模式影响会不准// [NSTimer scheduledTimerWithTimeInterval:<#(NSTimeInterval)#> target:<#(nonnull id)#> selector:<#(nonnull SEL)#> userInfo:<#(nullable id)#> r…

flex的12个属性

容器&#xff08;父元素&#xff09;的属性&#xff1a; flex-direction属性决定主轴的方向 flex-wrap 属性决定项目在一行排不下的情况下是否换行 flex-flow flex-flow属性是flex-direction属性和flex-wrap属性的简写形式&#xff0c;默认值为row nowrap。 jstify-content …

vue图片懒加载插件vue-lazyload

插件地址&#xff1a;https://github.com/hilongjw/vue-lazyload demo&#xff1a;http://hilongjw.github.io/vue-lazyload/ 1、安装 cnpm i vue-lazyload -S 2、使用 main.js import VueLazyLoad from vue-lazyloadVue.use(VueLazyLoad, {error:/static/error.png,loadin…

IT需求过程管理

IT部门就是为其他业务、内勤部门提供信息化手段的&#xff0c;所以在实施信息化系统的时候首先要做的就是需求调研&#xff0c;但是针对于绝大多数业务部门的人员而言&#xff0c;信息系统是很不熟悉的&#xff0c;我们会经常听到这样的回复“这个应该很快就可以实现吧”、“当…

maskView与CAGradientLayer详解

#maskView基本原理 - png图片透明像素的原理 - maskView可类比于多张png图片的叠加遮罩&#xff0c;原理类似 - maskView是iOS8以上才有的&#xff0c;如果要考虑兼容低版本&#xff0c;用maskLayer替代 //使用maskView的情况 property (nonatomic, strong)UIImageView *addIma…

nodejs的启动方式

1、原始node命令 直接命令行中使用node命令 node xxx.js 或者安装nodemon&#xff0c;使用nodemon启动方便在开发阶段热部署代码改动 npm i nodemon -G nodemon xxx.js 2、webstorm方式 webstorm中&#xff0c;需要执行的文件的上&#xff0c;右键->run&#xff0c;右…

win7rc 序列号- 10/21之前

安装介绍&#xff1a;http://www.microsoft.com/china/windows/windows-7/download.aspx 注册获得序列号&#xff1a;http://technet.microsoft.com/zh-cn/evalcenter/dd353205.aspx?ITPIDmscomsc在 2009 年 10 月 21 日之前&#xff0c;您仍可以通过注册来获取产品密钥或查找…

maskView与CAGradientLayer那回事儿

maskView基本原理 png图片透明像素的原理maskView可类比于多张png图片的叠加遮罩&#xff0c;原理类似maskView是iOS8以上才有的&#xff0c;如果要考虑兼容低版本&#xff0c;用maskLayer替代 //使用maskView的情况 property (nonatomic, strong)UIImageView *addImageView;…

mongoose操作mongodb

http://mongoosejs.com/docs/api.html#index-js mongoose是nodejs环境下操作mongodb的模块封装&#xff0c;使用mongoose之后&#xff0c;实际上只需要在mongodb中创建好数据库与用户&#xff0c;集合的定义、创建、操作等直接使用mongoose即可。 一、连接二、重要概念三、基本…

虚拟机上使用ghost xp

虚拟机ghost 1 先用启动项里的pq对虚拟机的硬盘格式化&#xff0c;然后最重要的一点就是 --右击--进阶-设定为作用然后执行2 重启一键安装到C盘就行了转载于:https://www.cnblogs.com/master-zhu/archive/2009/09/15/1567081.html

iOS11新增版本判断API

iOS11新增版本判断API iOS11版本现在有了简单的API&#xff0c;OC也开始支持swfit的available语法&#xff0c;不用再手写iOS版本判断了。 if (available(iOS 11.0, *)) {// 版本适配 } // 或者 #ifdef __IPHONE_11_0 #endif 目前没发现有iPhoneX的机型判断API&#xff0…

调试asp

response.Write(sqltext) response.End() response.Write(sqltext) response.End()转载于:https://www.cnblogs.com/master-zhu/archive/2009/09/21/1570816.html

vue滚动加载插件vue-infinite-scroll

vue-infinite-scroll插件可以无限滚动实现加载更多&#xff0c;其作用是是当滚动条滚动到距离底部的指定高度时触发某个方法。 https://github.com/ElemeFE/vue-infinite-scroll/ https://www.npmjs.com/package/vue-infinite-scroll 安装 cnpm i vue-infinite-scroll -S v…