稳定性: 3 - 稳定

这个模块包含分析和解析 URL 的工具。调用 require('url') 来访问模块。

解析 URL 对象有以下内容,依赖于他们是否在 URL 字符串里存在。任何不在 URL 字符串里的部分,都不会出现在解析对象里。例子如下:

'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'

  • href: 准备解析的完整的 URL,包含协议和主机(小写)。

    例子: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'

  • protocol: 请求协议, 小写.

    例子: 'http:'

  • slashes: 协议要求的斜杠(冒号后)

    例子: true 或 false

  • host: 完整的 URL 小写 主机部分,包含端口信息。

    例子: 'host.com:8080'

  • auth: url 中的验证信息。

    例子: 'user:pass'

  • hostname: 域名中的小写主机名

    例子: 'host.com'

  • port: 主机的端口号

    例子: '8080'

  • pathname: URL 中的路径部分,在主机名后,查询字符前,包含第一个斜杠。

    例子: '/p/a/t/h'

  • search: URL 中得查询字符串,包含开头的问号

    例子: '?query=string'

  • path: pathname 和 search 连在一起

    例子: '/p/a/t/h?query=string'

  • query: 查询字符串中得参数部分,或者使用 querystring.parse() 解析后返回的对象。

    例子: 'query=string' or {'query':'string'}

  • hash: URL 的 “#” 后面部分(包括 # 符号)

    例子: '#hash'

URL 模块提供了以下方法:

url.parse(urlStr[, parseQueryString][, slashesDenoteHost])

输入 URL 字符串,返回一个对象。

第二个参数为 true 时,使用 querystring 来解析查询字符串。如果为 true,query 属性将会一直赋值为对象,并且 search 属性将会一直是字符串(可能为空)。默认为 false。

第三个参数为true ,把 //foo/bar 当做{ host: 'foo', pathname: '/bar' } ,而不是{ pathname: '//foo/bar' }。默认为 false。

url.format(urlObj)

输入一个解析过的 URL 对象,返回格式化过的字符串。

格式化的工作流程:

  • href 会被忽略
  • protocol 无论是否有末尾的 : (冒号),会同样的处理
    • http, https, ftp, gopher, file 协议会被添加后缀://
    • mailto, xmpp, aim, sftp, foo, 等协议添加后缀:
  • slashes 如果协议需要 ://,设置为 true
    • 仅需对之前列出的没有斜杠的协议,比如议 mongodb://localhost:8000/
  • auth 如果出现将会使用.
  • hostname 仅在缺少 host 时使用
  • port 仅在缺少 host 时使用
  • host 用来替换 hostname 和 port
  • pathname 无论结尾是否有 / 将会同样处理
  • search 将会替代 query属性
    • 无论前面是否有 / 将会同样处理
  • query (对象; 参见 querystring) 如果没有 search,将会使用
  • hash 无论前面是否有#,都会同样处理

url.resolve(from, to)

给一个基础 URL, href URL,如同浏览器一样的解析它们可以带上锚点,例如:

url.resolve('/one/two/three', 'four')         // '/one/two/four'
url.resolve('http://example.com/', '/one') // 'http://example.com/one'
url.resolve('http://example.com/one', '/two') // 'http://example.com/two'

Node.js URL的更多相关文章

  1. node.js url模块

    URL url.parse(urlStr[, parseQueryString][, slashesDenoteHost]) url.format(urlObj) url.resolve(from, ...

  2. Node.js——url模块

    url模块通过api可以将get提交的参数方便的提取出来

  3. Node.js 发送Email

    章节 Node.js 介绍 Node.js 入门 Node.js 模块 Node.js HTTP模块 Node.js 文件系统模块 Node.js URL模块 Node.js NPM Node.js ...

  4. Node.js 文件系统模块

    章节 Node.js 介绍 Node.js 入门 Node.js 模块 Node.js HTTP模块 Node.js 文件系统模块 Node.js URL模块 Node.js NPM Node.js ...

  5. Node.js 介绍

    章节 Node.js 介绍 Node.js 入门 Node.js 模块 Node.js HTTP模块 Node.js 文件系统模块 Node.js URL模块 Node.js NPM Node.js ...

  6. node.js 针对不同的请求路径(url) 做出不同的响应

    边看这个边写的: http://wenku.baidu.com/link?url=C4yLe-TVH6060u_x4t34H3Ze8tjoL7HjJaKgH-TvHnEYl-T_gAMYwhmrCeM ...

  7. Node.js中的URL

    Node.js中的URL 什么是URL URL是Uniform Location Resource的缩写,翻译为"统一资源定位符",也就是描述资源位置的固定表示方法.被URL描述的 ...

  8. node.js (01http 模块 url 模块)

    // 引入 http 模块-->Node.js 中的很多功能都是通过模块实现. var http = require('http'); // http.createServer() 方法创建服务 ...

  9. 用node.js写个在Bash上对字符串进行Base64或URL的encode和decode脚本

    一:自己这段时间经常要用到Base64编码和URL编码,写个编译型语言有点麻烦干脆就用node.js弄了个,弄好后在/etc/profile里加上alias就能完成工具的配置,先上代码: functi ...

随机推荐

  1. Linux平台部署.Net Core SDK

    根据微软MSDN,.Net Core无论是1.x还是2.0都只支持64位系统. 准备 以下是.NetCore支持的系统版本 以下 Linux 64 位(x86_64 或 amd64)发行版本/版本支持 ...

  2. 1.5 WEB API 上传文件

    1.前提,设置跨域 2.在控制器头添加允许跨域 /// <summary> /// 文件管理口控制器 /// </summary> [EnableCors("*&qu ...

  3. 阿里移动云专场专题.md

    小激动 一年一度的阿里云栖大会是我们开发者的盛会,带着着激动的心情参加了这次开发者盛会,二话不说进入会场就被震感到了,先来张图聊表敬意. 主会场马云爸爸还是很有范的,将未来定义为无法定义,在这里宣布成 ...

  4. 开源纯C#工控网关+组态软件(九)定制Visual Studio

    一.   引子 因为最近很忙(lan),很久没发博了.不少朋友对那个右键弹出菜单和连线的功能很感兴趣,因为VS本身是不包含这种功能的.   大家想这是什么鬼,怎么我的设计器没有,其实这是一个微软黑科技 ...

  5. MariaDB表表达式(2):CTE

    本文目录: 1.非递归CTE 2.递归CTE 2.1 语法 2.2 递归CTE示例(1) 2.3 递归CTE示例(2) 2.4 递归CTE示例(3) 公用表表达式(Common Table Expre ...

  6. [LeetCode] Strange Printer 奇怪的打印机

    There is a strange printer with the following two special requirements: The printer can only print a ...

  7. “百度杯”CTF比赛 九月场_再见CMS(齐博cms)

    题目在i春秋ctf大本营 又是一道cms的题,打开御剑一通乱扫,发现后台登录地址,访问一看妥妥的齐博cms 记得以前很久以前利用一个注入通用漏洞,这里我贴上链接,里面有原理与利用方法详细说明: 齐博c ...

  8. Java爬虫原理分析

    当我们需要从网络上获取资源的时候,我们一般的做法就是通过浏览器打开某个网站,然后将我们需要的东西下载或者保存下来. 但是,当我们需要大量下载的时候,这个时候通过人工一个个的去点击下载,就显得太没有效率 ...

  9. [SDOI2010]古代猪文

    题目背景 “在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心……” ——选自猪王国民歌 很久很久以前,在山的那边海的那边的某片 ...

  10. [UOJ]#33. 【UR #2】树上GCD

    题目大意:给定一棵有根树,边长均为1,对于每一个i,求树上有多少个点对,他们到lca距离的gcd是i.(n<=200,000) 做法:先容斥,求出gcd是i的倍数的点对,考虑长链剖分后从小到大合 ...