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获取本机内网和外网ip地址的实现代码
Jun 01 NodeJs
nodejs教程之异步I/O
Nov 21 NodeJs
Nodejs全局安装和本地安装的不同之处
Jul 04 NodeJs
初探nodeJS
Jan 24 NodeJs
Ajax异步文件上传与NodeJS express服务端处理
Apr 01 NodeJs
详解nodejs爬虫程序解决gbk等中文编码问题
Apr 06 NodeJs
nodejs爬虫遇到的乱码问题汇总
Apr 07 NodeJs
深入浅析Nodejs的Http模块
Jun 20 NodeJs
NodeJS爬虫实例之糗事百科
Dec 14 NodeJs
Nodejs中的JWT和Session的使用
Aug 21 NodeJs
NodeJS模块与ES6模块系统语法及注意点详解
Jan 04 NodeJs
nodejs简单抓包工具使用详解
Aug 23 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
曾在DC漫画界反派角色扮演的演员,谁才是你心目中的小丑之王?
2020/04/09 欧美动漫
dedecms采集中可以过滤多行代码的正则表达式
2007/03/17 PHP
深入PHP内存相关的功能特性详解
2013/06/08 PHP
PHP使用mysqldump命令导出数据库
2015/04/14 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
Javascript 实现的数独解题算法网页实例
2013/10/15 Javascript
Egret引擎开发指南之编译项目
2014/09/03 Javascript
20条学习javascript的编程规范的建议
2014/11/28 Javascript
JS中完美兼容各大浏览器的scrolltop方法
2015/04/17 Javascript
JavaScript判断IE版本型号
2015/07/27 Javascript
javascript学习笔记_浅谈基础语法,类型,变量
2016/09/19 Javascript
微信小程序 出现47001 data format error原因解决办法
2017/03/10 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
2018/12/10 jQuery
javascript+HTML5 canvas绘制时钟功能示例
2019/05/15 Javascript
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
微信小程序 接入腾讯地图的两种写法
2021/01/12 Javascript
用python分割TXT文件成4K的TXT文件
2009/05/23 Python
python ddt数据驱动最简实例代码
2019/02/22 Python
python学生管理系统的实现
2020/04/05 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
Python流程控制语句的深入讲解
2020/06/15 Python
python-jwt用户认证食用教学的实现方法
2021/01/19 Python
Python3爬虫ChromeDriver的安装实例
2021/02/06 Python
python爬虫用request库处理cookie的实例讲解
2021/02/20 Python
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
英国亚马逊官方网站:Amazon.co.uk
2019/08/09 全球购物
铭宣海淘转运:美国、日本、英国转运等全球转运公司
2019/09/10 全球购物
酒店服务实习自我鉴定
2013/09/22 职场文书
计算机网络专业个人的自我评价
2013/10/17 职场文书
社团文化节邀请函
2014/01/10 职场文书
收银员的岗位职责范本
2014/02/04 职场文书
历史专业学生的自我评价
2014/02/28 职场文书
爱与责任师德演讲稿
2014/08/26 职场文书
2017新年晚会开幕词
2016/03/03 职场文书