分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

url模块总结

发布时间:2023-09-06 01:47责任编辑:傅花花关键词:url

url包是node中用来解析url的一个包,主要参照??URL API ,列出一些自己的总结。

1、node v8之后url模块正式提供了两套API来处理URLs,一种是node本身的 API,一种是与浏览器兼容的 WHATWG API。

两种API解析 ‘http://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash‘ 同一个URL区别如下,其中上部分为node本身遗留API解析结果,下部分为兼容Web浏览器后支持的新的API解析结果。

2、遗留的URL API

  2.1、url.parse(url, [boolean], [boolean])

    

var url = require(‘url‘);var urlObj = url.parse(‘http://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash‘);

        结果如下:

     

    其中

      slashes指的是 如果 protocol 协议冒号后面跟着两个 ASCII 斜杠字符(/),则值为 true,但是像 ‘mailto:user@xx.com‘ 就是null(mailto协议,默认启动邮件客户端发送邮件)

      host 比 hostname多端口

                      search比query多 ?且当第二个参数为true时,query属性值为一个参数对象

      path比pathname多后面参数

      href是完整路径

    第三个可选参数,默认为false,当为true时,他以url字符串里 //后面到第一个/之间内容作为 host的值,否则没用不加协议的url host解析为null

  2.2 url.resolve(from,to)

    此方法像web一样解析跳转url

const url = require(‘url‘);url.resolve(‘/one/two/three‘, ‘four‘); ????????// ‘/one/two/four‘url.resolve(‘http://example.com/‘, ‘/one‘); ???// ‘http://example.com/one‘url.resolve(‘http://example.com/one‘, ‘/two‘); // ‘http://example.com/two‘

  2.3url.format(urlObj)

    此方法会解析urlObj为 url字符串

3、WHATWG API

   此API是在引入的url模块上新增一个URL属性(构造函数),可以用来声明URL对象,构造器的参数为 url字符串

const {URL} = require(‘url‘); ??//解构赋值,必须大写或者 const URL = require(‘url‘).URLvar urlObj = new URL(‘http://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash‘);

  结果如下

     

  其中 

    origin为protocol + host

    port为有效数字,可以用urlObj.port赋值,如果是字符串则截取有效整数,如果https协议,默认443端口隐藏

    href为完整url串,给urlObj.href赋值,可以改变urlObj对象属性值 ,urlObj.toJSON()  urlObj.toString() 与 urlObj.href结果相同

4、注意

  用WHATWG API解析的url返回的url对象的属性不能使用delete方法删除,原因是属性都是在其类的原型链上的get set生成的伪属性,不是其本身的。

  url.parse生成的url对象可以使用delete删除属性。

url模块总结

原文地址:https://www.cnblogs.com/whaleX/p/8681796.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved