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 相关文章推荐
PHPStorm 2020.1 调试 Nodejs的多种方法详解
Sep 17 NodeJs
轻松创建nodejs服务器(10):处理POST请求
Dec 18 NodeJs
详解nodejs微信公众号开发——1.接入微信公众号
Apr 10 NodeJs
Nodejs--post的公式详解
Apr 29 NodeJs
nodejs前端自动化构建环境的搭建
Jul 26 NodeJs
nodejs简单读写excel内容的方法示例
Mar 16 NodeJs
nodeJS服务器的创建和重新启动的实现方法
May 12 NodeJs
nodejs取得当前执行路径的方法
May 13 NodeJs
NodeJS搭建HTTP服务器的实现步骤
Oct 12 NodeJs
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
Dec 06 NodeJs
Nodejs对postgresql基本操作的封装方法
Feb 20 NodeJs
Nodejs 识别图片类型的方法
Aug 15 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
PHP中::、-&amp;gt;、self、$this几种操作符的区别介绍
2013/04/24 PHP
php文件操作相关类实例
2015/06/18 PHP
thinkphp诸多限制条件下如何getshell详解
2020/12/09 PHP
jquery限定文本框只能输入数字即整数和小数
2013/11/29 Javascript
jQuery基于当前元素进行下一步的遍历
2014/05/20 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
2014/10/30 Javascript
js实现感应鼠标图片透明度变化的方法
2015/02/20 Javascript
JavaScript学习笔记整理之引用类型
2016/01/22 Javascript
javascript事件绑定学习要点
2016/03/09 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
2016/10/24 Javascript
9个让JavaScript调试更简单的Console命令
2016/11/14 Javascript
Vue-cli3项目配置Vue.config.js实战记录
2018/07/29 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
2018/12/03 Javascript
vue结合el-upload实现腾讯云视频上传功能
2020/07/01 Javascript
vue使用echarts画组织结构图
2021/02/06 Vue.js
Python中MySQL数据迁移到MongoDB脚本的方法
2016/04/28 Python
python基于pyDes库实现des加密的方法
2017/04/29 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
Python实现判断一行代码是否为注释的方法
2018/05/23 Python
python 读取文本文件的行数据,文件.splitlines()的方法
2018/07/12 Python
详解pandas数据合并与重塑(pd.concat篇)
2019/07/09 Python
django rest framework serializer返回时间自动格式化方法
2020/03/31 Python
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
预订奥兰多和佛罗里达州公园门票:FloridaTix
2018/01/03 全球购物
高校生生产实习自我鉴定
2013/09/21 职场文书
大学生创业计划书
2014/08/14 职场文书
村委会贫困证明范本
2014/09/17 职场文书
基层党员群众路线教育实践活动个人对照检查材料思想汇报
2014/10/05 职场文书
2014年档案管理工作总结
2014/11/17 职场文书
银行反洗钱宣传活动总结
2015/05/08 职场文书
元旦主持词开场白
2015/05/29 职场文书
步步惊心观后感
2015/06/12 职场文书
教你用python实现一个无界面的小型图书管理系统
2021/05/21 Python
Python软件包安装的三种常见方法
2022/07/07 Python
element tree树形组件回显数据问题解决
2022/08/14 Javascript