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