zoukankan      html  css  js  c++  java
  • node中的url和path模块

    //path模块
    1.Node.js path 模块提供了一些用于处理文件路径的小工具,我们可以通过以下方式引入该模块:
    var path = require("path")
    
    2.常用方法
    ================path.join([...paths])
    path.join() 方法使用平台特定的分隔符把全部给定的 path 片段连接到一起,并规范化生成的路径
    会正确使用当前系统的路径分隔符,Unix系统是"/",Windows系统是""。
    
    例子:
    path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');// 返回: '/foo/bar/baz/asdf'
    path.join('foo', {}, 'bar');// 抛出 'TypeError: Path must be a string. Received {}'
    
    如果任一路径片段不是一个字符串,则抛出 TypeError。
    
    =================path.normalize(path)
    path.normalize() 方法会规范化给定的 path,并解析 '..' 和 '.' 片段。
    
    例如:
    path.normalize('/foo/bar//baz/asdf/quux/..');// 返回: '/foo/bar/baz/asdf'    ..表示上一级
    path.normalize('C:\temp\\foo\bar\..\');// 返回: 'C:\temp\foo\'      ..表示上一级
    path.win32.normalize('C:////temp\\/\/\/foo/bar');// Returns: 'C:\temp\foo\bar'
    
    如果 path 不是一个字符串,则抛出 TypeError。
    
    =======================path.resolve([...paths])
    path.resolve() 方法会把一个路径或路径片段的序列解析为一个绝对路径。
    如果没有传入 path 片段,则 path.resolve() 会返回当前工作目录的绝对路径。
    path.resolve('/foo/bar', './baz');// 返回: '/foo/bar/baz'
    path.resolve('/foo/bar', '/tmp/file/');// 返回: '/tmp/file'
    
    path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif');// 如果当前工作目录为 /home/myself/node,// 则返回 '/home/myself/node/wwwroot/static_files/gif/image.gif'
    
    如果任何参数不是一个字符串,则抛出 TypeError。
    ======================path.dirname(p)
    返回路径中代表文件夹的部分,同 Unix 的dirname 命令类似
    
    ======================path.extname(p)
    返回路径中文件的后缀名,即路径中最后一个'.'之后的部分。如果一个路径中并不包含'.'或该路径只包含一个'.' 且这个'.'为路径的第一个字符,则此命令返回空字符串。
    
    =======================path.parse(pathString)
    返回路径字符串的对象。
    
    ========================path.format(pathObject)
    从对象中返回路径字符串,和 path.parse 相反。
    //url模块
    1.url 模块提供了一些实用函数,用于 URL 处理与解析。
    const url = require('url');
    
    2.URL 字符串与 URL 对象
    ┌──────────────────────────────────────────────────────
    
    ───────────────────────────────────────┐
    │                                            href                                             │
    ├──────────┬──┬─────────────────────┬──────────────────
    
    ───┬───────────────────────────┬───────┤
    │ protocol │  │        auth         │        host         │           path            │ hash  │
    │          │  │                     ├──────────────┬──────┼──────────┬──
    
    ──────────────┤       │
    │          │  │                     │   hostname   │ port │ pathname │     search     │       │
    │          │  │                     │              │      │          ├─┬──────────────┤ 
    
          │
    │          │  │                     │              │      │          │ │    query     │       │
    "  https:   //    user   :   pass   @ sub.host.com : 8080   /p/a/t/h  ?  query=string   #hash "
    │          │  │          │          │   hostname   │ port │          │                │       │
    │          │  │          │          ├──────────────┴──────┤          │              
    
      │       │
    │ protocol │  │ username │ password │        host         │          │                │       │
    ├──────────┴──┼──────────┴──────────┼──────────────────
    
    ───┤          │                │       │
    │   origin    │                     │       origin        │ pathname │     search     │ hash  │
    ├─────────────┴─────────────────────┴──────────────────
    
    ───┴──────────┴────────────────┴───────┤
    │                                            href                                             │
    └──────────────────────────────────────────────────────
    
    ───────────────────────────────────────┘
    
    
    3.url 模块提供了两套 API 来处理 URL 字符串:一个是Node.js特有的API,是旧版本的遗留;另一个则是实现了WHATWG URL 
    
    Standard的 API ,该标准也在各种浏览器中被使用。
    
    请注意: 虽然Node.js遗留的特有的API并没有被弃用,但是我们保留它的目的仅是用于兼容已有应用程序。因此新的应用程序
    
    应当使用WHATWG API
    
    4.
    这种写法在低版本的node中不支持
    最新发布的Node.js v8.0.0 将在v7.0.0中非实验性的WHATWG URL分析器做了实验性实现,并且完全支持. 下面将介绍你可以如
    
    何使用它.
    WHATWG网页超文本应用技术工作小组是一个以推动网络HTML 5 标准为目的而成立的组织。
    利用WHATWG API解析一个URL字符串:
    
    const { URL } = require('url');
    const myURL = new URL('https://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash');
    
    
    const { URL } = require('url');
    const myURL = new URL('/foo', 'https://example.org/');
    
    ######url.hash
    console.log(myURL.hash);
    
    console.log(myURL.host);
    
    console.log(myURL.hostname);
    
    console.log(myURL.href);
    
    console.log(myURL.origin);
    
    console.log(myURL.pathname);
    
    console.log(myURL.port);
    
    console.log(myURL.protocol);
    
    console.log(myURL.search);
    
    url.searchParams
    
    5.Node.js特有的API
    const url = require("url");
    
    url一共提供了三个方法,分别是url.parse();  url.format();  url.resolve();
    
        1.url.parse(urlString,boolean,boolean)
        parse这个方法可以将一个url的字符串解析并返回一个url的对象
    
            参数:urlString指传入一个url地址的字符串
    
         第二个参数(可省)传入一个布尔值,默认为false,为true时,返回的url对象中,query的属性为一个对象。
    
         第三个参数(可省)传入一个布尔值,默认为false,为true时,解析时会将url的"//"和第一个"/"之间的部分解析
    
    为主机名,可以在ip地址之后加个端口号试下。
    
        2 url.format(urlObj)
        format这个方法是将传入的url对象编程一个url字符串并返回
    
        3 url.resolve(from,to)
        接受 域名(或ip地址) 和 路径 生成完整url。
        resolve这个方法返回一个格式为"from/to"的字符串,在宝宝看来是对传入的两个参数用"/"符号进行拼接,并返回
  • 相关阅读:
    leetcode 122. Best Time to Buy and Sell Stock II
    leetcode 121. Best Time to Buy and Sell Stock
    python 集合(set)和字典(dictionary)的用法解析
    leetcode 53. Maximum Subarray
    leetcode 202. Happy Number
    leetcode 136.Single Number
    leetcode 703. Kth Largest Element in a Stream & c++ priority_queue & minHeap/maxHeap
    [leetcode]1379. Find a Corresponding Node of a Binary Tree in a Clone of That Tree
    正则表达式
    十种排序算法
  • 原文地址:https://www.cnblogs.com/bao2333/p/10143087.html
Copyright © 2011-2022 走看看