📜  获取 url 并解析或 url.parse 已弃用已解决 (1)

📅  最后修改于: 2023-12-03 14:57:13.105000             🧑  作者: Mango

获取 URL 并解析或 url.parse 已废弃已解决

在开发 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

要获取当前请求的 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 类和它提供的方法。例如,以下代码将解析 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 类。