美文网首页
Node.js模块学习——Url

Node.js模块学习——Url

作者: 深思海数_willschang | 来源:发表于2016-09-19 17:19 被阅读235次

    url模块

    该模块允许解析URL、生成URL,以及拼接URL。

    url.parse()

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

    urlStr为要解析的url字符串;parseQueryString参数等于true时,该方法返回的URL对象中,query字段不再是一个字符串,而是一个经过querystring模块转换后的参数对象;slashesDenoteHost参数等于true时,该方法可以正确解析不带协议头的URL
    url.parse()方法用于解析URL对象,解析后返回一个JSON对象。

    var url = require('url');
    var urlStr = 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'
    url.parse(urlStr);
    /*
     { 
      protocol: 'http:',  
      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'
     }
    */
    

    参数说明

    protocol: 请求协议
    host: URL主机名已全部转换成小写, 包括端口信息
    auth:URL中身份验证信息部分
    hostname:主机的主机名部分, 已转换成小写
    port: 主机的端口号部分
    pathname: URL的路径部分,位于主机名之后请求查询之前
    search: URL 的“查询字符串”部分,包括开头的问号。
    path: pathname 和 search 连在一起。
    query: 查询字符串中的参数部分(问号后面部分字符串),或者使用 querystring.parse() 解析后返回的对象。
    hash: URL 的 “#” 后面部分(包括 # 符号)

    url.format()

    将一个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.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'
    
    

    url解析图例

                            url.parse(string).query
                                               |
               url.parse(string).pathname      |
                           |                   |
                           |                   |
                         ------ -------------------
    http://localhost:8888/start?foo=bar&hello=world
    

    相关文章

      网友评论

          本文标题:Node.js模块学习——Url

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