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 相关文章推荐
轻松创建nodejs服务器(10):处理POST请求
Dec 18 NodeJs
NodeJS中利用Promise来封装异步函数
Feb 25 NodeJs
nodejs调用cmd命令实现复制目录
May 04 NodeJs
详解NodeJS框架express的路径映射(路由)功能及控制
Mar 24 NodeJs
浅析 NodeJs 的几种文件路径
Jun 07 NodeJs
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
Sep 19 NodeJs
详解nodejs通过代理(proxy)发送http请求(request)
Sep 22 NodeJs
nodejs实现截取上传视频中一帧作为预览图片
Dec 10 NodeJs
详解NODEJS的http实现
Jan 04 NodeJs
nodeJS模块简单用法示例
Apr 21 NodeJs
NodeJs 模仿SIP话机注册的方法
Jun 21 NodeJs
node快速搭建后台的实现步骤
Feb 18 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
分页显示Oracle数据库记录的类之一
2006/10/09 PHP
php创建多级目录代码
2008/06/05 PHP
PHP中的数组处理函数实例总结
2016/01/09 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
Web版彷 Visual Studio 2003 颜色选择器
2007/01/09 Javascript
JQuery拖拽元素改变大小尺寸实现代码
2012/12/10 Javascript
jQuery模拟超链接点击效果代码
2013/04/21 Javascript
文件编码导致jquery失效的解决方法
2013/06/26 Javascript
js实现无需数据库的县级以上联动行政区域下拉控件
2013/08/14 Javascript
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
Jquery操作js数组及对象示例代码
2014/05/11 Javascript
浅谈JavaScript Date日期和时间对象
2014/12/29 Javascript
详解jQuery Mobile自定义标签
2016/01/06 Javascript
Bootstrap 最常用的JS插件系列总结(图片轮播、标签切换等)
2016/07/14 Javascript
jQuery制作圣诞主题页面 更像是爱情影集
2016/08/10 Javascript
Angular2 PrimeNG分页模块学习
2017/01/14 Javascript
JS去除字符串中空格的方法
2017/02/14 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
2017/03/21 jQuery
VUE Error: getaddrinfo ENOTFOUND localhost
2018/05/03 Javascript
js实现各浏览器全屏代码实例
2018/07/03 Javascript
vue+element-ui+axios实现图片上传
2019/08/20 Javascript
[46:44]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
python检测远程端口是否打开的方法
2015/03/14 Python
Python脚本实现自动发带图的微博
2016/04/27 Python
python引入导入自定义模块和外部文件的实例
2017/07/24 Python
Python编程实现使用线性回归预测数据
2017/12/07 Python
Python selenium如何打包静态网页并下载
2020/08/12 Python
python 通过exifread读取照片信息
2020/12/24 Python
Roxy俄罗斯官方网站:冲浪和滑雪板的一切
2020/06/20 全球购物
世界上最大的铁人三项商店:Tri UK
2020/11/04 全球购物
恒华伟业笔试面试题
2015/02/26 面试题
大学生的应聘自我评价
2013/12/13 职场文书
三严三实对照检查材料
2014/08/25 职场文书
2014年教育实习工作总结
2014/11/22 职场文书
工地材料员岗位职责
2015/04/11 职场文书
心灵点滴观后感
2015/06/02 职场文书