美文网首页
核心模块——URL

核心模块——URL

作者: 小弋呀 | 来源:发表于2016-07-20 18:14 被阅读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.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根目录的路径
    也不知道理解的对不对。。

    相关文章

      网友评论

          本文标题:核心模块——URL

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