• Node.js:url


    在node运行环境中输入url:

    > url
    url
    { parse: [Function: urlParse],
      resolve: [Function: urlResolve],
      resolveObject: [Function: urlResolveObject],
      format: [Function: urlFormat],
      Url: [Function: Url] }

    可以看到有五个方法。

    1.url.parse():解析一个路径

    例如:

    > url.parse('http://imooc.com/course/list')
    Url {
      protocol: 'http:',
      slashes: true,
      auth: null,
      host: 'imooc.com',
      port: null,
      hostname: 'imooc.com',
      hash: null,
      search: null,
      query: null,
      pathname: '/course/list',
      path: '/course/list',
      href: 'http://imooc.com/course/list' }

    将路径解析成一个对象,包含了端口号、主机名等等信息。

    - url.parse()的第二个参数会将query解析成一个对象,如:

    > url.parse('http://imooc.com:8080/course/list?from=scott&course=node#floor1',true)
    Url {
      protocol: 'http:',
      slashes: true,
      auth: null,
      host: 'imooc.com:8080',
      port: '8080',
      hostname: 'imooc.com',
      hash: '#floor1',
      search: '?from=scott&course=node',
      query: { from: 'scott', course: 'node' },
      pathname: '/course/list',
      path: '/course/list?from=scott&course=node',
      href: 'http://imooc.com:8080/course/list?from=scott&course=node#floor1' }

    对比可以发现,当第二个参数设置为true时,会将url中的query解析成一个对象。

    - url.parse()的第三个参数可以解析一个不确定协议的url请求

    > url.parse('//imooc.com/course/list',true,true)
    Url {
      protocol: null,
      slashes: true,
      auth: null,
      host: 'imooc.com',
      port: null,
      hostname: 'imooc.com',
      hash: null,
      search: '',
      query: {},
      pathname: '/course/list',
      path: '/course/list',
      href: '//imooc.com/course/list' }

    设置第三个参数true的时候,能够解析不带协议的url请求,如果不设置第三个参数(默认为false)效果又是怎样的呢?看下面的代码:

    > url.parse('//imooc.com/course/list',true)
    Url {
      protocol: null,
      slashes: null,
      auth: null,
      host: null,
      port: null,
      hostname: null,
      hash: null,
      search: '',
      query: {},
      pathname: '//imooc.com/course/list',
      path: '//imooc.com/course/list',
      href: '//imooc.com/course/list' }

    对比上面,发现无法识别host、hostname。

    2.url.format():格式化一个url对象。

    例如:

    > url.format({
    ...   protocol: 'http:',
    ...   slashes: true,
    ...   auth: null,
    ...   host: 'imooc.com:8080',
    ...   port: '8080',
    ...   hostname: 'imooc.com',
    ...   hash: '#floor1',
    ...   search: '?from=scott&course=node',
    ...   query: 'from=scott&course=node',
    ...   pathname: '/course/list',
    ...   path: '/course/list?from=scott&course=node',
    ...   href: 'http://imooc.com:8080/course/list?from=scott&course=node#floor1' })
    'http://imooc.com:8080/course/list?from=scott&course=node#floor1'

    能够输出完整的url路径。

    3.url.resolve():为url插入或替换原有的标签。

    接收两个参数,第一个是源地址,第二个是需要添加或者替换的标签。例如:

    > url.resolve('http://imooc.com/','course/list')
    'http://imooc.com/course/list'

     

  • 相关阅读:
    数据结构的入门
    Google 插件
    树莓派的第一次
    MySQL下载与安装
    SVN图标不显示问题
    excel 批量生成SQL语句
    版本管理工具
    RSA加密、解密、签名、验签的原理及方法
    获取客户端内网IP
    eclipse 添加svn插件
  • 原文地址:https://www.cnblogs.com/koto/p/5664882.html
Copyright © 2020-2023  润新知