Node.js从无到有-No.2(url网址解析好帮手)

2、Node.js API

1、在互联网上,一个具体的地址使用URL来表示,很多童鞋分不清什么是url,什么uri,那么uri是统一资源标识符,url是统一资源定位符,比如说网址就是一个url,需要通过一个具体的字符串来访问具体的资源,uri实际是个抽象的东西,是字符串格式规范。url一定是uri,但uri不一定是url,简单的说大学是一个概念,北京大学是个具体的地址,具体的环境,北京大学一定是大学,大学不一定就唯一指北京大学,和url与uri关系是一个道理。

2、我们去官网上看看URL,有这么三个方法

url.parse()方法就是地址解析,解析为一个对象。

url.format()方法恰好相反,将一个url对象格式化成为一个字符串。

url.resolve()方法也是用来解析的,只不过接受两个参数,将其拼接为可以识别的url

3、首先我们进入node环境,输入url,接着使用url.parse()方法来解析一个url

 

如上图所示,我们来看看使用url.parse()方法解析为对象后这个对象里都包含什么内容

(1)protocol:表示的是底层使用的协议

(2)slashes:表示是否有协议的双斜线

(3)host是表示http服务器的IP地址或者域名

(4)port是端口,默认是8080端口

(5)hostname:表示主机名

(6)hash:表示哈希值,对应的是某个锚点

(7)search:表示查询字符串参数

(8)query:是发送给http服务器的数据

(9)pathname:访问资源路径名

(10)href:超链接,俗称完成的网址

在官网上有一副图对于理解完整网址各部分非常好的示意图,可以增强理解


4、为了能更好的理解这些参数我们继续来解析一个复杂的url


这下解析出来的对象很多参数就都有了,其中author这个是登陆的参数,包括我们的user和pass,也就是用户和密码,现在我们来使用以下url剩下的两个方法。

5、使用url.format({})方法将上面的我们解析的对象拿来看能不能解析成为url字符串,使用url.resolve()将host和path和并


6,url.parse()方法其实参数里有三个,

第一个就是url地址,第二个是解析url中的query部分用的什么方法,默认是false,使用的是url中的方法,解析出来就是之前图片里的形式:query: 'from=scott&course=node'。但是如果将第二个参数设置为true,那么使用的就是QueryString方法,那么解析出来就是这种形式:  query: { from: 'scott', course: 'node' },如下图所示:


第三个参数:有时候我们并不知道这个url来自于什么协议,可能是http,也可能是https,我们在不知道协议的条件下也想进行正确的解析,所以我们使用第三个参数,第三个参数默认是false


所以说上图中对于一个不知道协议的url如果不将第三个参数设置为true,那么就解析不成功,所以说url.parse()方法的参数设定要根据具体的需求去具体的设置

猜你喜欢

转载自blog.csdn.net/weixin_37968345/article/details/80716939
今日推荐