在 Node.js 环境中,怎样利用内置模块来构造以及拆解 URL 字符串?
考察说明
考查对 Node.js 核心模块 URL 的掌握程度,包括创建和解析的实际操作。
回答思路
- 【回答框架 1】Node.js 内置的 URL 模块提供 URL 类和 url.parse(旧版)方法。URL 类遵循 WHATWG 标准,是推荐用法,可通过 new URL(input, base) 创建实例,其中 input 为 URL 字符串,base 为可选基准地址。
- 【回答框架 2】解析 URL 时,new URL(urlString) 会返回一个 URL 对象,包含 protocol、hostname、port、pathname、search、hash 等属性。若字符串缺少协议或域名,可提供 base 参数补全。
- 【回答框架 3】旧版 url.parse 方法在 Node.js v14 及以后被标记为 Legacy API,虽仍可用但不推荐;其返回对象含 auth、host、path 等属性,与 WHATWG 标准有差异。
- 【回答框架 4】创建新 URL 时,可通过修改 URL 对象属性(如 pathname、searchParams)来构建新地址,URLSearchParams 类可方便地管理查询参数。
- 【回答框架 5】在无 base 且字符串为相对路径时,URL 类会抛出错误;此时应使用 path.resolve 或提供 base。
- 【关键点 1】URL 类遵循 WHATWG 标准,通过 new URL() 创建实例。
- 【关键点 2】解析时可直接属性访问,如 url.protocol、url.pathname。
- 【关键点 3】url.parse 是旧 API,功能上缺乏 searchParams 等。
- 【关键点 4】URLSearchParams 用于查询序列化和修改。
- 【关键点 5】注意相对路径解析时需要 base 参数,否则报错。