zoukankan      html  css  js  c++  java
  • 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'

     

  • 相关阅读:
    485串口接线
    mvc3 升级mvc5
    VB连接ACCESS数据库,使用 LIKE 通配符问题
    VB6 读写西门子PLC
    可用的 .net core 支持 RSA 私钥加密工具类
    解决 Win7 远程桌面 已停止工作的问题
    解决 WinForm 重写 CreateParams 隐藏窗口以后的显示问题
    解决安装 .net framework 发生 extracting files error 问题
    CentOS7 安装配置笔记
    通过特殊处理 Resize 事件解决 WinForm 加载时闪烁问题的一个方法
  • 原文地址:https://www.cnblogs.com/koto/p/5664882.html
Copyright © 2011-2022 走看看