url内置板块
nodejs 专门解析浏览器地址栏数据信息的内置模块
导入
const url = require('url'); 导入内置模块
url.parse('路径'); 解析url地址中 携带的数据参数 解析结果是一个对象形式
普通解析
`结果.query` 中以字符串形式 存储携带的参数
/**
https://www.baidu.com:8088/a/b/c/index.html?name=张三&age=18&sex=男
{
protocol: 'https:',
请求协议
slashes: true,
地址路径以 / 斜杠原则解析
auth: null,
证书,权限设定等
host: 'www.baidu.com:8088',
服务器地址和端口
port: '8088',
端口号
hostname: 'www.baidu.com',
服务器名称
hash: null,
细分路径
search: '?name=张三&age=18&sex=男',
携带参数
query: 'name=张三&age=18&sex=男',
携带参数的解析结果 默认解析结果是字符串格式
如果 url.parse() 第二个参数设定为true 执行深度解析 解析结果是 对象形式
pathname: '/a/b/c/index.html',
文件路径
path: '/a/b/c/index.html?name=张三&age=18&sex=男',
完成的文件路径和携带的参数
href: 'https://www.baidu.com:8088/a/b/c/index.html?name=张三&age=18&sex=男'
整个浏览器地址栏的数据内容
}
*/
url.parse('路径', true);
普通解析
结果.query 中 以对象形式存储 携带的参数
实际项目中一般不会存储所有的参数数据, 通过 结构赋值语法形式 获取 指定键名存储的键值
let{键名1, 键名2,...} = url.parse('路径', true).query
//导入 内置 url 模块
const url = require('url');
//模拟一个url地址 并且携带函数
let urlStr = 'https://www.baidu.com:8088/a/b/c/index.html?name=张三&age=18&sex=男';
//普通解析 解析结果.query 是字符串形式存储的携带参数
let res1 = url.parse(urlStr);
console.log(res1.query); //name=张三&age=18&sex=男
//深度解析 解析结果.query 是字符串形式 存储的携带参数
let res2 = url.parse(urlStr, true);
console.log(res.query);//[Object: null prototype] { name: '张三', age: '18', sex: '男' }
//解构赋值获取指定的参数数据
//url.parse(urlStr, true).query 以对象的形式存储 所有的参数数据, 可以通过 解构赋值语法 在整个对象中解构需要的某一个或者某几个键名中存储的键值
// 整个携带参数是 { name: '张三', age: '18', sex: '男' }
// 通过 解构赋值 将 键名name 键名age 存储的数据 赋值给变量name 变量age 存储
let{name, age} = url.parse(urlStr, true).query;
console.log( name , age );//张三 18