美文网首页
node中URL模块

node中URL模块

作者: 夏夏夏夏顿天 | 来源:发表于2018-10-16 10:07 被阅读22次

node中的URL模块,有两个版本, 一个是Node.js遗留的特有的API

保留的原因:虽然Node.js遗留的特有的API并没有被弃用,但是保留的目的是用于向后兼容已有应用程序。因此新的应用程序请使用WHATWG API。

URL模块无非干这么三件事情

  • 解析地址
  • 生成地址
  • 拼接地址

解析地址

解析地址的方法用parse

url.parse()

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

urlStr: 要解析的url地址

queryString: 解析出来的查询字符串还是查询对象,true是对象 false是字符串,例如:http://foo/bar?a=123, true的话 query: {a: 123}, false的话 query: 'a=123' 默认是false

AnalysisHost: 是否要解析出来host (即将//之后至下一个/之前的字符串),例如://foo/bar 会被解析为{host: 'foo', pathname: '/bar},否则{pathname: '//foo/bar'}.默认是false

const myURLA =
    url.parse('https://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash', true);
console.log(myURLA);

// Url {
//     protocol: 'https:', // 协议
//         slashes: true,
//         auth: 'user:pass', // 用户名密码
//         host: 'sub.host.com:8080', // host主机名
//         port: '8080', // 端口号
//         hostname: 'sub.host.com', // 主机名不带端口号
//         hash: '#hash', // 哈希值
//         search: '?query=string',// 查询字符串
//         query: 'query=string', // 请求参数
//         pathname: '/p/a/t/h', // 路径名
//         path: '/p/a/t/h?query=string', // 带查询的路径名
//         href: 'https://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash' // 原字符串本身
}

生成地址

url.format(url,options)

将一个URL对象转换为URL字符串

 url: 一个WHATWG URL对象
options:
1. auth: 如果序列化的URL字符串应该包含用户名和密码为true,否则为false。默认为true。
2. fragment: 如果序列化的URL字符串应该包含分段为true,否则为false。默认为true。即是不是需要包含哈希值
3. search: 如果序列化的URL字符串应该包含搜索查询为true,否则为false。默认为true。
4. unicode: true 如果出现在URL字符串主机元素里的Unicode字符应该被直接编码而不是使用Punycode编码为true,默认为false。

返回一个WHATWG URL对象的可自定义序列化的URL字符串表达。

案例

url.format({   
  protocol: 'http:',   
  host: 'www.example.com',    
  pathname: '/p/a/t/h',    
  search: 'query=string'
});
/*
'http://www.example.com/p/a/t/h?query=string'
*/

拼接URL

url.resolve()

可以用于拼接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'

参考:

https://juejin.im/post/5a978d225188254b0323147c
https://www.jianshu.com/p/df3ffeb18f20

相关文章

  • node中URL模块

    node中的URL模块,有两个版本, 一个是Node.js遗留的特有的API 保留的原因:虽然Node.js遗留的...

  • 利用node实现get请求数据读写、处理post请求参数以及使用

    一般node中去获取拼接在url的get参数,需要利用node的内置模块中的queryString以及url这两个...

  • node js 中url模块

    url.parse() 方法会解析一个 URL 字符串并返回一个 URL 对象。 第二个参数默认为false,qu...

  • node中的url模块

    URL URL是因特网资源的标准化名称,URI是通用的资源标识符,URL是URI的子集,URL分三部分组成,比如我...

  • 兄弟会8.9号笔记

    node.js模块学习 http 模块 fs 模块 url 模块 http 模块 HTTP http.STA...

  • Node url模块

    url Nodejs的url模块只要提供一些实用函数,用于URL的处理和解析。在Nodejs中可以直接引用url模...

  • 高明1024学习笔记

    node.js的URL模块学习 URL统一资源定位符 URL中文文档:协议+域名/IP地址 该模块包含用以 URL...

  • Node的Url模块

    Url 模块 Node的url模块主要提供一些实用的函数来进行url的处理和分析。 url字符串和url对象 ur...

  • 十二、express post与get请求

    get请求 get请求的参数在URL中,在原生Node中,需要使用url模块来识别参数字符串。在Express中,...

  • Node中url模块的方法

    URL模块是NodeJS的核心模块之一,用于解析url字符串和url对象 1、url.parse(url_str[...

网友评论

      本文标题:node中URL模块

      本文链接:https://www.haomeiwen.com/subject/cbmczftx.html