稳定性: 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: pathnamesearch 连在一起

    例子: '/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 来解析查询字符串。如果为 truequery 属性将会一直赋值为对象,并且 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 用来替换 hostnameport
  • 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. 排序技巧——双关键字排序(快速排序,sort)

    一个萌新的成长之路 Background 在做题过程中,我们常会遇到对双关键字排序的情况,如:当分数相等时,序号小的在前. 这时我们可以通过定义cmp函数作为sort的参数进行排序. Solution ...

  2. python/数据库操作补充—模板—Session

    python/数据库操作补充—模板—Session 一.创建一个app目录 在models.py只能类进行进行创建表 class Foo: xx= 字段(数据库数据类型) 字段类型 字符串 Email ...

  3. Linux命令基础

    开启Linux操作系统,root用户登录GNOME图形界面,如下图: 切换到虚拟终端2,使用普通用户身份登录,查看系统提示符,如下图: 使用命令退出虚拟终端2上的登录用户,如下图: 切换到虚拟终端5, ...

  4. 初学Java Web(9)——学生管理系统(简易版)总结

    项目开始时间:2018年4月8日14:37:47 项目完成时间:2018年4月9日10:03:30 技术准备 这个项目是自己用于巩固 J2EE 相关知识的练手项目,非常简单,但是相关的功能却非常实用, ...

  5. poj1182-食物链-带权并查集-种类并查集

    (这应该是我写的第一个和带权并查集相关的题,还不是很了解,所以这篇博客我以后还会做修改,力求更号理解! 题意和思路: 中文题意,我简单提一下: A->B,B->C,C->A.A吃B, ...

  6. Java动态代理模式浅析

    Java代理设计模式 - 静态代理 Java中的动态代理 - 调用处理器 代理设计模式的UML图: 我将首先介绍Java中的各种代理实现方法 Java代理设计模式 - 静态代理 这个例子非常简单,只有 ...

  7. [C#]设计模式-建造者模式-创建型模式

    介绍完工厂模式,现在来看一下建造者模式.建造者模式就是将一系列对象组装为一个完整对象并且返回给用户,例如汽车,就是需要由各个部件来由工人建造成一个复杂的组合实体,这个复杂实体的构造过程就被外部化到一个 ...

  8. [LeetCode] Longest Palindromic Subsequence 最长回文子序列

    Given a string s, find the longest palindromic subsequence's length in s. You may assume that the ma ...

  9. [ZJOI 2006]书架

    Description 小T有一个很大的书柜.这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列.她用1到n的正整数给每本书都编了号. 小T在看书的时候,每次取出一本书,看完后放回书柜然后再拿下 ...

  10. bzoj 4945: [Noi2017]游戏

    Description Solution 首先我们发现一个位置如果不是 \('x'\),那么就只有两种选择 而 \('x'\) 的个数小于等于 \(8\),直接枚举是哪个就好了 然后就是 \(2-sa ...