📅  最后修改于: 2023-12-03 14:57:13.105000             🧑  作者: Mango
在开发 Web 应用程序时,获取 URL 并解析 URL 是很基础的操作。Node.js 提供了两种方法来处理 URL:一种是使用核心模块 url
,另一种是使用 URL
类。
在 Node.js 10.0.0 及以上版本中,解析 URL 的首选方法是使用 URL
类。在 Node.js 7.0.0 及以上版本中,url.parse()
已弃用,并在 Node.js 12.0.0 中已移除。
下面将详细介绍如何使用 URL
类来获取和解析 URL。
要获取当前请求的 URL,我们可以使用 Node.js 中的 req.url
,它是一个字符串,表示请求的 URL。例如,以下代码将打印出当前请求的 URL:
const http = require('http');
const server = http.createServer((req, res) => {
console.log(req.url); // 打印出请求的 URL
res.end('Hello World');
});
server.listen(8080, () => {
console.log('Server running at http://localhost:8080/');
});
要解析 URL,我们可以使用 URL
类和它提供的方法。例如,以下代码将解析 URL 并打印出其各个部分:
const { URL } = require('url');
const myURL = new URL('https://example.com:8080/foo?id=1234&name=John%20Doe');
console.log(myURL.protocol); // 'https:'
console.log(myURL.hostname); // 'example.com'
console.log(myURL.port); // '8080'
console.log(myURL.pathname); // '/foo'
console.log(myURL.search); // '?id=1234&name=John%20Doe'
console.log(myURL.searchParams.get('id')); // '1234'
console.log(myURL.searchParams.get('name')); // 'John Doe'
URL
类提供了更强大和易用的 API 来处理 URL。它不仅可以获取和解析 URL,还可以修改和构造 URL。因此,在新的项目中,我们应该始终使用 URL
类。