nodejs——URL 基础API
node.js中文url API文档地址:http://nodejs.cn/api/url.html
以下是URL的基础API的简单使用:
url.parse(url)
将字符串解析成url对象
基本的解析:
命令行输入:
1 $ url.parse('https://www.imooc.com/video/6710')
打印如下:
Url { protocol: 'https:', // 底层使用的协议 slashes: true, // 是否有协议的双实线 auth: null, // host: 'www.imooc.com', // ip或域名 port: null, // 是否有端口 hostname: 'www.imooc.com', // 主机名 hash: null, // 哈希值(一般是锚点) search: null, // 查询字符串参数 query: null, // 发送给http服务器的数据 pathname: '/video/6710', // 访问资源的路径名 path: '/video/6710', // 访问资源的路径 href: 'https://www.imooc.com/video/6710' // 未解析的详细的url地址 }
加上参数或锚点:
命令行输入:
$ url.parse('https://www.imooc.com:8080/video/6710?from=mankii&course=node#floor1')
打印如下:
1 Url { 2 protocol: 'https:', 3 slashes: true, 4 auth: null, 5 host: 'www.imooc.com:8080', 6 port: '8080', 7 hostname: 'www.imooc.com', 8 hash: '#floor1', 9 search: '?from=mankii&course=node', 10 query: 'from=mankii&course=node', 11 pathname: '/video/6710', 12 path: '/video/6710?from=mankii&course=node', 13 href: 'https://www.imooc.com:8080/video/6710?from=mankii&course=node#floor1' 14 }
url.format(options)
与url.parse()相对的,url.format将url对象转换成字符串
命令行输入:
1 $ url.format{ 2 protocol: 'https:', 3 slashes: true, 4 auth: null, 5 host: 'www.imooc.com:8080', 6 port: '8080', 7 hostname: 'www.imooc.com', 8 hash: '#floor1', 9 search: '?from=mankii&course=node', 10 query: 'from=mankii&course=node', 11 pathname: '/video/6710', 12 path: '/video/6710?from=mankii&course=node', 13 href: 'https://www.imooc.com:8080/video/6710?from=mankii&course=node#floor1' 14 }
打印如下:
'https://www.imooc.com:8080/video/6710?from=mankii&course=node#floor1'
url.resolve(url,path)
以一种 Web 浏览器解析超链接的方式把一个目标 URL 解析成相对于一个基础 URL
命令行输入:
1 $ url.resolve("https://www.imooc.com","/course/list");
打印如下:
1 'https://www.imooc.com/course/list'
----- url.parse更多参数 ----
url.parse(url, true)
// 第二个参数为true时,则将query解析成对象格式
命令行输入:
1 $ url.parse('https://www.imooc.com:8080/video/6710?from=mankii&course=node#floor1', true)
打印如下:
1 Url { 2 protocol: 'https:', 3 slashes: true, 4 auth: null, 5 host: 'www.imooc.com:8080', 6 port: '8080', 7 hostname: 'www.imooc.com', 8 hash: '#floor1', 9 search: '?from=mankii&course=node', 10 query: { from: 'mankii', course: 'node' }, 11 pathname: '/video/6710', 12 path: '/video/6710?from=mankii&course=node', 13 href: 'https://www.imooc.com:8080/video/6710?from=mankii&course=node#floor1' }
url.parse(url, true, true)
// 第三个参数为true时,会自动根据协议来解析
例如,第三个参数不设置时,命令行输入:
1 $ url.parse("//imooc.com/course/list", true)
打印如下:可以看到无法正常解析
1 Url { 2 protocol: null, 3 slashes: null, 4 auth: null, 5 host: null, 6 port: null, 7 hostname: null, 8 hash: null, 9 search: '', 10 query: {}, 11 pathname: '//imooc.com/course/list 12 path: '//imooc.com/course/list', 13 href: '//imooc.com/course/list' }
加上第三个参数,命令行输入:
1 $ url.parse("//imooc.com/course/list", true, true)
打印如下:
1 Url { 2 protocol: null, 3 slashes: true, 4 auth: null, 5 host: 'imooc.com', 6 port: null, 7 hostname: 'imooc.com', 8 hash: null, 9 search: '', 10 query: {}, 11 pathname: '/course/list', 12 path: '/course/list', 13 href: '//imooc.com/course/list' }