Skip to content
📈0️⃣

Node 内置库 - url 详解

介绍下 const url = require("url"); 的用法和作用

首先 const url = require("url") 是在 Node.js 环境中使用的核心模块之一。它提供了处理和操作 URL 的功能。

下面是 url 模块的常见用法和作用:

1. 解析 URL

  • url.parse(urlString[, parseQueryString[, slashesDenoteHost]]):将指定的 URL 字符串解析为一个 URL 对象,并返回该对象。

  • 可以通过设置 parseQueryString 参数来控制是否将查询字符串解析为对象,默认为 false

  • 设置 slashesDenoteHost 参数指定了斜线(/)是否表示主机,默认为 false

2. 构建 URL

  • url.format(urlObject):将一个 URL 对象格式化为字符串,并返回该字符串。
  • url.resolve(from, to):根据基础 URL from 和给定的链接 to,生成一个新的完整的 URL。

3. URL 对象的属性和方法

  • urlObject.href:完整的 URL 字符串。
  • urlObject.protocol:URL 协议部分。
  • urlObject.host:URL 主机部分。
  • urlObject.hostname:URL 主机名部分。
  • urlObject.port:URL 端口部分。
  • urlObject.pathname:URL 路径部分(常用)
  • urlObject.search:URL 查询字符串部分。
  • urlObject.query:已解析的查询字符串对象。
  • urlObject.hash:URL 哈希部分。

url 模块提供了对 URL 进行解析、构建以及访问各个组成部分的能力。通过使用该模块,您可以方便地处理 URL 相关的操作,例如解析 URL 参数、拼接 URL、访问 URL 的各个部分等。

以下是一个 url 模块的示例使用方式:

javascript
const url = require("url");

const urlString = "https://example.com/path?param1=value1&param2=value2";

// 解析 URL
const parsedUrl = url.parse(urlString, true);
console.log(parsedUrl);

// 访问 URL 对象的属性
console.log(parsedUrl.host); // 输出 'example.com'
console.log(parsedUrl.query); // 输出 { param1: 'value1', param2: 'value2' }

// 构建 URL
const newUrl = url.format(parsedUrl);
console.log(newUrl); // 输出 'https://example.com/path?param1=value1&param2=value2'

上述示例演示了如何使用 url 模块解析 URL、访问 URL 对象的属性以及构建 URL。