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极简入门教程(三):进程
Oct 27 NodeJs
nodejs批量修改文件编码格式
Jan 22 NodeJs
浅析Nodejs npm常用命令
Jun 14 NodeJs
Nodejs进阶:基于express+multer的文件上传实例
Nov 21 NodeJs
nodejs基础应用
Feb 03 NodeJs
解决nodejs中使用http请求返回值为html时乱码的问题
Feb 18 NodeJs
NodeJS配置HTTPS服务实例分享
Feb 19 NodeJs
Nodejs搭建wss服务器教程
May 24 NodeJs
NodeJS实现视频转码的示例代码
Nov 18 NodeJs
nodeJS微信分享
Dec 20 NodeJs
使用nodejs+express实现简单的文件上传功能
Dec 27 NodeJs
nodejs 日志模块winston的使用方法
May 02 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实现简单的语法高亮函数实例分析
2015/04/27 PHP
禁用JavaScript控制台调试的方法
2014/03/07 Javascript
jQuery的cookie插件实现保存用户登陆信息
2014/04/15 Javascript
javascript函数声明和函数表达式区别分析
2014/12/02 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
使用jQuery在对象中缓存选择器的简单方法
2015/06/30 Javascript
分享两段简单的JS代码防止SQL注入
2016/04/12 Javascript
学习Angularjs分页指令
2016/07/01 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
JS实现HTML标签转义及反转义
2020/04/14 Javascript
vue.js中Vue-router 2.0基础实践教程
2017/05/08 Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
2017/09/14 Javascript
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
动手写一个angular版本的Message组件的方法
2017/12/16 Javascript
通过JS运行机制的角度说说作用域
2019/03/12 Javascript
jQuery操作事件完整实例分析
2020/01/10 jQuery
vue移动端使用canvas签名的实现
2020/01/15 Javascript
如何利用javascript接收json信息并进行处理
2020/08/06 Javascript
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
Python+OpenCV实现图像的全景拼接
2020/03/05 Python
python程序输出无内容的解决方式
2020/04/09 Python
python实现发送QQ邮件(可加附件)
2020/12/23 Python
css3圆角样式分享自定义按钮样式
2013/12/27 HTML / CSS
美国著名的婴儿学步鞋老品牌:Robeez
2016/08/20 全球购物
比较基础的php面试题及答案-编程题
2012/10/14 面试题
外贸公司实习自我鉴定
2013/09/24 职场文书
餐饮管理自我介绍信
2014/01/15 职场文书
亲子拓展活动方案
2014/02/20 职场文书
经典公益广告词
2014/03/13 职场文书
机械加工与数控专业自荐书
2014/06/04 职场文书
工作表扬信范文
2015/01/17 职场文书
市场总监岗位职责
2015/02/11 职场文书
导游词幽默开场白
2019/06/26 职场文书
利用 JavaScript 构建命令行应用
2021/11/17 Javascript
浅谈Redis 中的过期删除策略和内存淘汰机制
2022/04/03 Redis
Windows7下FTP搭建图文教程
2022/08/05 Servers