NodeJS - URL 模块



NodeJS URL 模块为我们提供了用于解析和解析 URL 的实用程序。URL 字符串是包含多个段的结构化字符串。以下是具有多个段的示例 URL。

URL =“http://user:pass@site.com:80/pa/th?q=val#hash”。

  • “http:”:指定协议段。
  • “user”:指定用户名段。
  • “pass”:指定密码段。
  • “site.com:80”:指定主机段。
  • “site.com”:指定主机名部分。
  • “80”:指定端口部分。
  • '/pa/th?q=val' :指定路径名段。
  • '/pa/th' :指定路径部分。
  • '?q=val' :指定搜索部分。
  • “#bar”:指定哈希段。

包括 URL 模块

要包含 URL 模块,请在 Node.js 文档的开头添加下面给出的语法。

语法


const url = require('url');

URL 模块在全局对象上可用,因此我们可以在不访问或导入它的情况下使用它。

现在,让我们看看使用 NodeJS URL 模块中的方法进行的一些操作。

打印序列化的 URL

要打印给定的序列化 URL,我们需要使用 NodeJS url.href 属性。


console.log("The given URL -");
const myURL = new URL('https://www.qikepu.com/index.htm');
console.log(myURL.href);

输出

在执行给定程序时,输出显示如下

The given URL - https://www.qikepu.com/index.htm

从 URL 打印主机名

为了从 URL 打印主机名段,我们使用 NodeJS url.hostname 属性。


const myURL = new URL('https://www.qikepu.com:100/index.htm');
console.log("The URL: " + myURL.href);
console.log("Hostname of the URL: " + myURL.hostname);

输出

让我们编译并运行该程序,以产生以下结果

The URL: https://www.qikepu.com:100/index.htm
Hostname of the URL: www.qikepu.com

从 URL 打印路径名

要从 URL 打印路径名段,我们使用 NodeJS url.pathname 属性。


const myURL = new URL("https://www.qikepu.com/prime-pack/cloud-computing/index.asp");
console.log("The URL: " + myURL.href);
console.log("Pathname of the URL: " + myURL.pathname);

输出

在执行给定程序时,输出显示如下

The URL: https://www.qikepu.com/prime-pack/cloud-computing/index.asp
Pathname of the URL: /prime-pack/cloud-computing/index.asp

URL 类

NodeJS URLSearchParams 类为我们提供了实用方法。使用这些方法,我们可以读取和写入 URL 的查询段。

属性列表

以下是 URL 类中可用的属性列表

方法 描述
hash 用于获取和设置 URL 的片段部分。
host 用于获取和设置 URL 的主机部分。
hostname 用于获取和设置指定 URL 的主机名部分。
href 用于获取和设置序列化的 URL。
origin 用于获取 URL 源的只读序列化。
password 用于获取和设置给定 URL 的密码部分。
pathname 用于获取和设置给定 URL 的路径名部分。
port 用于设置和获取所提供 URL 的端口部分。
protocol 用于获取和设置指定 URL 的协议部分。
search 用于获取和设置 URL 的序列化查询部分。
username 用于获取和设置所提供 URL 的用户名。

方法列表

以下是 URL 类中可用的方法列表

方法 描述
toString() 用于从 URL 对象中检索序列化的 URL。
toJSON() 用于从 URL 对象中检索序列化的 URL。
domainToASCII() 用于返回 Punycode,该代码将域转换并表示为 ASCII 字符。
domainToUnicode 用于返回域中存在的 ASCII 值的 Unicode。
fileURLToPath 用于接受文件 URL 字符串或 URL 对象,并将它们转换为正确编码的路径。
format() 用于返回 URL 字符串的可自定义序列化,该字符串是 WHATWG URL 对象的表示形式
pathToFileURL() 用于接受文件的路径并将它们转换为完全解析的文件 URL 对象
urlToHTTPOptions() 用于将 URL 对象转换为包含 URL 中每个段数据的普通选项对象。
format(urlObject) 用于返回派生自 urlObject 的格式化 URL 字符串。
parse() 用于接受 URL 字符串,对其进行解析,最后返回一个对象,其中包含提供的 URL 字符串中存在的段。

URLSearchParams 类

NodeJS URL 类为我们提供了用于 URL 解析和解析的方法和属性。使用这些,我们可以获取和设置 URL 中存在的段。此类在全局对象上可用。

方法列表

以下是 URLSearchParams 类中可用的方法列表

方法 描述
new URLSearchParams (string) 用于创建具有 JSON 对象的查询字符串对象。
new URLSearchParams(obj) 用于将输入字符串解析为查询字符串,并使用它来创建新的查询字符串对象。
append() 用于在查询字符串中将指定的名称/值对追加为新的搜索参数。
delete()

 

用于删除值为 name 的所有名称/值对。
 
entries() 用于返回一个 ES6 迭代器,该迭代器允许对查询字符串中存在的所有名称/值对进行迭代。
forEach() 用于循环访问查询中的所有名称/值对并调用给定的函数。
get() 用于从查询字符串中的指定名称中检索值。
getAll() 用于获取查询字符串中指定名称的所有值。
has() 如果传递给此方法的名称存在,它将打印 true,否则它将打印 false。
keys() 用于在每个名称-值对的名称上返回一个 ES6 迭代器。
set() 用于将名称/值对设置为查询字符串。
sort() 用于对查询字符串中名称/值对的所有名称进行排序。
toString() 用于检索包含查询段的搜索参数的序列化字符串。
values() 用于返回一个 ES6 迭代器,该迭代器允许迭代每个名称/值对的所有值
[Symbol.iterator]() 用于返回一个 ES6 迭代器,该迭代器允许对查询字符串中存在的所有名称/值对进行迭代。

属性列表

以下是 urlObject 中可用的属性列表

方法 描述
auth 用于指定 URL 的身份验证段
hash 用于指定 URL 中的片段段。
host 用于指定 URL 的完整小写主机段。
hostname 用于指定 URL 的主机段的小写主机名部分。
href 用于指定使用协议段和主机段分析的完整小写 URL 字符串。
path 用于指定路径段以及搜索部分(如果存在)。
pathname 用于指定 URL 的路径段中的路径名部分
port 用于指定 URL 中主机段的数字端口部分。
protocol 用于指定URL的小写协议方案。
query 用于指定 URL 中的查询字符串部分。
search 用于指定 URL 的完整查询字符串段。
slashes 它根据 URL 的协议段中的冒号 (:) 之后需要的两个 ASCII 正斜杠 (//) 返回一个布尔值。