JavaScript~ nodejs~ url内置板块

67 阅读2分钟

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