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