核心模块——URL

处理HTTP请求时url模块使用率比较高,因为该模块允许解析URL、生成URL,以及拼接URL。首先我们来看看Node官方给的一个完整RUL
var urlpath =' http://user:pass@host.com:8080/p/a/t/h?query=string#hash';

URL

1、url.parse(urlString[, parseQueryString[, slashesDenoteHost]])

将一个URL解析成一个对象,第2、3个参数都是boolean类型,parseQueryString定义是否将查询字符串query转化为object,默认为false不转换

  • url.parse(urlpath)
Url {
  protocol: 'http:',
  slashes: true,
  auth: 'user:pass',
  host: 'host.com:8080',
  port: '8080',
  hostname: 'host.com',
  hash: '#hash',
  search: '?query=string',
  query: 'query=string',
  pathname: '/p/a/t/h',
  path: '/p/a/t/h?query=string',
  href: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash' }

个人感觉用到的最多的就是pathnamequery两个属性了,请注意区分host/hostname、search/query、path/pathname之间的区别

  • url.parse(urlpath,true)
Url {
  protocol: 'http:',
  slashes: true,
  auth: 'user:pass',
  host: 'host.com:8080',
  port: '8080',
  hostname: 'host.com',
  hash: '#hash',
  search: '?query=string',
  query: { query: 'string' },
  pathname: '/p/a/t/h',
  path: '/p/a/t/h?query=string',
  href: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash' }
看query变成了对象
2、url.format(urlObj)

讲一个URLObj转为一个URL字符串,parse方法的逆向

3、url.resolve(url1, url2)

用于拼接两个url,下面几个测试:

resolve

一开始看这个好懵逼,然后忽然好想明白了,第二个参数url2带“./”或不带开头是对url1的相对路径,而‘/’是绝对路径,对url1根目录的路径
也不知道理解的对不对。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,981评论 19 139
  • url Nodejs的url模块只要提供一些实用函数,用于URL的处理和解析。在Nodejs中可以直接引用url模...
    漫漫前端阅读 1,661评论 0 1
  • URL模块 该模块比较简单,方法也只有三个 1. URL各部分说明 对于一个 URL 字符串,其组成部分会有所有不...
    明明三省阅读 13,588评论 6 21
  • 第一章 Nginx简介 Nginx是什么 没有听过Nginx?那么一定听过它的“同行”Apache吧!Ngi...
    JokerW阅读 32,803评论 24 1,002
  • 你的生活和道路,都是属于你自己的。也许你会羡慕别人美境之奇山异石,一览众山小,多么风光,可也许别人走过崎岖,可高处...
    舒己怀_Frank阅读 351评论 14 25