文章目录
一、什么是url模块
它是nodejs里面的一个简单的模块,可以把url网址解析为一个对象
网址: URL
http://www.baidu.com/20220728/news/page1/index.html?count=20&maxid=123456#top1
网址的组成:
协议:http 网址的开头 ":“前面就是协议
域名或ip+端口号:www.baidu.com “//“后面到第一个”/”
pathname:20220728/news/page1/index.html 第一个”/"到问号前面
query:count=20&maxid=123456 问号后面到#前面
hash:top1 #号后面
二、url模块的方法
url一共提供了三个方法,分别是url.parse(); url.format(); url.resolve();
1 url.parse(urlString,boolean,boolean)
parse这个方法可以将一个url的字符串解析并返回一个url的对象
参数:urlString指传入一个url地址的字符串
第二个参数(可省)传入一个布尔值,默认为false,为true时,返回的url对象中,query的属性为一个对象。
第三个参数(可省)传入一个布尔值, 默认为false,//foo/bar 形式的字符串将被解释成 { pathname: ‘//foo/bar’ };如果设置成true,//foo/bar 形式的字符串将被解释成 { host: ‘foo’, pathname: ‘/bar’ }
var url=require("url")
var obj=url.parse("https://www.so.com/s?q=www.baidu.com&ie=utf-8&src=se7_newtab_big_sug")
console.log(obj)
当把第二个参数设置为true时:可发现query就变成了对象:
2 url.format(urlObj)
format这个方法是将传入的url对象编程一个url字符串并返回
参数:urlObj指一个url对象
var url=require("url")
var urlObj={
protocol:"http:",
host:"www.baidu.com",
port:"66"
}
var obj=url.format(urlObj)
console.log(obj)
3 url.resolve(from,to)
resolve这个方法返回一个格式为"from/to"的字符串,对传入的两个参数用"/"符号进行拼接,并返回
var url=require("url")
var obj=url.resolve("http://www.baidu.com","home")
console.log(obj)