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地址

}
View Code

加上参数或锚点:

命令行输入:

$ 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 }
View Code


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 }
View Code

打印如下:

'https://www.imooc.com:8080/video/6710?from=mankii&course=node#floor1'
View Code

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' }
View Code


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' }
View Code

加上第三个参数,命令行输入:

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' }
View Code

猜你喜欢

转载自www.cnblogs.com/mankii/p/9823623.html