url模块的引入
在头部输入以下代码:
const url = require("url");
url模块提供的方法
url模块目前提供三个方法url.parse(),url.format(),url.resolve();
url.parse(urlStr,[boolean],[boolean])
接口作用:解析一个url地址,返回一个url对象
参数:第一个参数 url地址字符串,第二个参数 为布尔值,默认false,当值为true,返回的url对象中query属性返回的是一个对象,第三个参数 为布尔值,默认false,如果设为 true,则//之后至下一个/之前的字符串会解析作为host.例如,//foo/bar会解析为{host:'foo',pathname:'/bar'} 而不是 {pathname:'//foo/bar'}.
示例代码:
let parseUrl = "https://www.google.com?q=node.js";
let urlObj = url.parse(parseUrl,true);
console.log(urlObj);
返回:
PS E:\项目\nodejs> node url.js
Url {
protocol: 'https:',
slashes: true,
auth: null,
host: 'www.google.com',
port: null,
hostname: 'www.google.com',
hash: null,
search: '?q=node.js',
query: [Object: null prototype] { q: 'node.js' },
pathname: '/',
path: '/?q=node.js',
href: 'https://www.google.com/?q=node.js' }
url.format(urlObj)
接口作用:接受一个url对象,返回一个url字符串
参数:第一个参数 是一个url对象,具体参数见代码
示例代码:
let urlObj = {
protocol: 'https:',
slashes: true,
auth: null,
host: 'www.google.com',
port: null,
hostname: 'www.google.com',
hash: null,
search: '?q=node.js',
query: '?q=node.js',
pathname: '/',
path: '/?q=node.js',
};
let objFormatUrl = url.format(urlObj);
console.log(objFormatUrl);
返回:
PS E:\项目\nodejs> node url.js
https://www.google.com/?q=node.js
url.resolve(from,to)
接口作用:拼接字符串网址
参数:第一个参数 拼接时相对的基本URL,第二个参数 要拼接的另一个url.
示例代码:
let urlAddress = url.resolve("https://www.google.com","image");
console.log(urlAddress);
返回:
PS E:\项目\nodejs> node url.js
https://www.google.com/image