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"的字符串,在宝宝看来是对传入的两个参数用"/"符号进行拼接,并返回

 

posted @ 2018-12-19 14:34  宝2333  阅读(1220)  评论(0编辑  收藏  举报