稳定性: 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. python基础——面向过程的编程思想及举例

    面向过程的编程思想 1.面向过程的编程思想及举例 写程序时: 要先想功能,分步实现 2. os模块中walk输出目录中文件路径 os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上 ...

  2. Python生成随机验证码

    Python生成随机验证码,需要使用PIL模块. 安装: pip3 install pillow 基本使用 1.创建图片 from PIL import Image img = Image.new(m ...

  3. 【面试题】由HashMap引发的一系列追问

    HashMap和HashTable的区别 同:HashMap和Hashtable都实现了Map接口. 异:HashMap允许null的键值对,非同步的,非线程安全的,效率高: HashTable不允许 ...

  4. logging的使用方法

    logging的使用方法 1,简单使用方法 >>> import logging >>> logging.warning('this is a warning') ...

  5. 【Jhipster】升级/修改 数据库结构

    前提 1.jhipster环境,jdk1.8,yeoman,node.js安装环境参考官方wiki,环境问题参考我的博客,如果出现注册中心空白页,请参考博客 2.首先需要启动jhipster基础服务, ...

  6. jquery的attr()方法

    一.定义和用法 attr() 方法设置或返回被选元素的属性和值. 当该方法用于返回属性值,则返回第一个匹配元素的值. 当该方法用于设置属性值,则为匹配元素设置一个或多个属性/值对. 二.语法 返回属性 ...

  7. AtomicInteger类的理解及使用

    AtomicInteger在多线程并发场景的使用 AtomicInteger提供原子操作来进行Integer的使用,因此十分适合高并发情况下的使用. AtomicInteger位于包package j ...

  8. Numpy&Pandas

    Numpy & Pandas 简介 此篇笔记参考来源为<莫烦Python> 运算速度快:numpy 和 pandas 都是采用 C 语言编写, pandas 又是基于 numpy, ...

  9. webpack的学习准备工作

    第一步:创建一个空项目,在terminal中 npm init  创建package.json文件,直接回车便可. 第二步:局部安装webpack: npm install --save-dev we ...

  10. [LeetCode] Fraction Addition and Subtraction 分数加减法

    Given a string representing an expression of fraction addition and subtraction, you need to return t ...