核心模块——URL

2016-07-20  本文已影响338人  小弋呀

处理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 {
  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 {
  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根目录的路径
也不知道理解的对不对。。
上一篇 下一篇

猜你喜欢

热点阅读