nodejs入门教程四:URL相关模块用法分析


Posted in NodeJs onApril 24, 2017

本文实例讲述了nodejs入门教程之URL相关模块用法。分享给大家供大家参考,具体如下:

1.URL 模块:用于 URL 处理与解析

1)URI 与 URL :

URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。
URL是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate(定位)这个资源。

2)URL模块中的方法:

url.format(urlObject):将一个 url 对象转为一个 url字符串

url.parse(urlString,[Boolean],[Boolean]):将 url 字符串地址转为一个对象

第一个Boolean

true:则 query 属性总会通过 querystring 模块的 parse() 方法生成一个对象。
false:则返回的 URL 对象上的 query 属性会是一个未解析、未解码的字符串。
默认为 false

第二个Boolean

true:则 // 之后至下一个 / 之前的字符串会被解析作为 host。
例如,//foo/bar 会被解析为 {host: 'foo', pathname: '/bar'}
而不是 {pathname: '//foo/bar'}。
默认为 false

url.resolve(from,to):以一种 Web 浏览器解析超链接的方式把一个目标 URL 解析成相对于一个基础 URL。

var url = require('url');
var urlObject = url.parse('https://hao.360.cn/?src=lm&ls=n6624339d99');
console.log(urlObject);
var urlString = url.format({
  protocol: 'https:',
  slashes: true,
  auth: null,
  host: 'hao.360.cn',
  port: null,
  hostname: 'hao.360.cn',
  hash: null,
  search: '?src=lm&ls=n6624339d99',
  query: 'src=lm&ls=n6624339d99',
  pathname: '/',
  path: '/?src=lm&ls=n6624339d99',
  href: 'https://hao.360.cn/?src=lm&ls=n6624339d99' })
console.log(urlString);

结果:

Url {
 protocol: 'https:',
 slashes: true,
 auth: null,
 host: 'hao.360.cn',
 port: null,
 hostname: 'hao.360.cn',
 hash: null,
 search: '?src=lm&ls=n6624339d99',
 query: 'src=lm&ls=n6624339d99',
 pathname: '/',
 path: '/?src=lm&ls=n6624339d99',
 href: 'https://hao.360.cn/?src=lm&ls=n6624339d99' }
https://hao.360.cn/?src=lm&ls=n6624339d99
var urlString2 = url.resolve('https://hao.360.cn/','?src=lm&ls=n6624339d99')
console.log(urlString) //https://hao.360.cn/?src=lm&ls=n6624339d99

2. querystring 模块:用于解析与格式化 URL 查询字符串

应用:针对于大量的参数传递的场景

querystring.escape(str):对给定的 str 执行 URL 百分号编码(转译)。

querystring.unescape(str):对给定的 str 上的 URL 百分号编码的字符执行解码(反转译)。

querystring.parse(str,[sep,[eq,[options]]]):方法能把一个 URL 查询字符串(str)解析成一个键值对的集合。

•str <String> 要解析的 URL 查询字符串。
•sep <String> 用于界定查询字符串中的键值对的子字符串。默认为 '&'。
•eq <String> 用于界定查询字符串中的键与值的子字符串。默认为 '='。
•options <Object>
•decodeURIComponent <Function> 当解码查询字符串中百分号编码的字符时使用的函数。默认 querystring.unescape()。
•maxKeys <number> 指定要解析的键的最大数量。默认为 1000。指定为 0 则移除键数的限制

④  querystring.stringify(obj[, sep[, eq[, options]]]):通过遍历对象的自有属性,从一个给定的 obj 产生一个 URL 查询字符串。

•obj <Object> 要序列化成一个 URL 查询字符串的对象。
•sep <String> 用于界定查询字符串中的键值对的子字符串。默认为 '&'。
•eq <String> 用于界定查询字符串中的键与值的子字符串。默认为 '='。
•options
•encodeURIComponent <Function> 当把对 URL 不安全的字符转换成查询字符串中的百分号编码时使用的函数。

默认为 querystring.escape()

var querystring = require('querystring');
var a = querystring.parse('src=lm&ls=n6624339d99');
console.log(a)  // { src: 'lm', ls: 'n6624339d99' }

3. http:计算机之间遵循的协议

nodejs入门教程四:URL相关模块用法分析

希望本文所述对大家nodejs程序设计有所帮助。

NodeJs 相关文章推荐
Windows系统下使用Sublime搭建nodejs环境
Apr 13 NodeJs
iPhone手机上搭建nodejs服务器步骤方法
Jul 06 NodeJs
浅谈Nodejs中的作用域问题
Dec 26 NodeJs
详解NodeJs支付宝移动支付签名及验签
Jan 06 NodeJs
Express+Nodejs 下的登录拦截实现代码
Jul 01 NodeJs
nodejs 搭建简易服务器的图文教程(推荐)
Jul 18 NodeJs
深入解析nodejs HTTP服务
Jul 25 NodeJs
nodejs使用express获取get和post传值及session验证的方法
Nov 09 NodeJs
nodejs中实现修改用户路由功能
May 24 NodeJs
Nodejs中使用puppeteer控制浏览器中视频播放功能
Aug 26 NodeJs
Nodejs文件上传、监听上传进度的代码
Mar 27 NodeJs
nodejs中内置模块fs,path常见的用法说明
Nov 07 NodeJs
nodejs入门教程三:调用内部和外部方法示例
Apr 24 #NodeJs
nodejs入门教程二:创建一个简单应用示例
Apr 24 #NodeJs
nodejs入门教程一:概念与用法简介
Apr 24 #NodeJs
nodejs 终端打印进度条实例代码
Apr 22 #NodeJs
详解如何在NodeJS项目中优雅的使用ES6
Apr 22 #NodeJs
nodejs和C语言插入mysql数据库乱码问题的解决方法
Apr 14 #NodeJs
解析NodeJS异步I/O的实现
Apr 13 #NodeJs
You might like
NT IIS下用ODBC连接数据库
2006/10/09 PHP
php字符串截取函数用法分析
2014/11/25 PHP
php写入数据到CSV文件的方法
2015/03/14 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
动态样式类封装JS代码
2009/09/02 Javascript
一个原生的用户等级的进度条
2010/07/03 Javascript
子窗口、父窗口和Silverlight之间的相互调用
2010/08/16 Javascript
JQuery中each()的使用方法说明
2010/08/19 Javascript
获取非最后一列td值并将title设为该值的方法
2013/10/30 Javascript
JQuery插件开发示例代码
2013/11/06 Javascript
在jquery中combobox多选的不兼容问题总结
2013/12/24 Javascript
js检测网络是否具体连接功能的代码
2014/05/23 Javascript
JavaScript实现格式化字符串函数String.format
2016/12/16 Javascript
原生JS实现图片网格式渐显、渐隐效果
2017/06/05 Javascript
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
Vue实战之vue登录验证的实现代码
2017/10/31 Javascript
JS限制输入框输入的实现代码
2018/07/02 Javascript
angularjs性能优化的方法
2018/09/05 Javascript
axios实现简单文件上传功能
2019/09/25 Javascript
Element Input输入框的使用方法
2020/07/26 Javascript
[01:56]无止竞 再出发——中国军团出征2017年DOTA2国际邀请赛
2017/07/05 DOTA
python 简易计算器程序,代码就几行
2009/08/29 Python
使用XML库的方式,实现RPC通信的方法(推荐)
2017/06/14 Python
Python实现excel转sqlite的方法
2017/07/17 Python
Python OS模块实例详解
2019/04/15 Python
Django模型序列化返回自然主键值示例代码
2019/06/12 Python
Django实现任意文件上传(最简单的方法)
2020/06/03 Python
python开根号实例讲解
2020/08/30 Python
澳大利亚第一的设计师礼服租赁网站:GlamCorner
2017/08/13 全球购物
Kathmandu澳洲户外商店:新西兰户外运动品牌
2017/11/12 全球购物
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
日语专业毕业生自荐信
2013/11/11 职场文书
2014大学生批评与自我批评思想汇报
2014/09/21 职场文书
会议接待欢迎词范文
2015/01/26 职场文书
导游词之南京夫子庙
2019/12/09 职场文书
Jupyter notebook 不自动弹出网页的解决方案
2021/05/21 Python