📜  Node.js URL 完整参考(1)

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

Node.js URL 完整参考

Node.js 中提供了 URL 模块,可以用来解析、处理和操作 URL。

解析 URL

Node.js 中有两种方法可以解析一个 URL:

url.parse()

url.parse() 方法将 URL 解析为对象的形式。具体用法如下:

const url = require('url');
const myURL = url.parse('https://www.example.com/path/?name=amy&age=20', true);

console.log(myURL.host); // 'www.example.com'
console.log(myURL.pathname); // '/path/'
console.log(myURL.search); // '?name=amy&age=20'
console.log(myURL.query); // { name: 'amy', age: '20' }

上述代码中,第二个参数传递了一个布尔值 true,用来表示解析 querystring。当值为 true 时,使用 querystring 模块解析查询字符串。

new URL()

使用 new URL() 方法可以直接创建一个 URL 对象。具体用法如下:

const myURL = new URL('https://www.example.com/path/?name=amy&age=20');
console.log(myURL.host); // 'www.example.com'
console.log(myURL.pathname); // '/path/'
console.log(myURL.search); // '?name=amy&age=20'
console.log(myURL.searchParams.get('name')); // 'amy'
console.log(myURL.searchParams.get('age')); // '20'

上述代码中,使用了 searchParams.get() 方法获取查询参数的值。

构造 URL

Node.js 中同样也有两种方法可以构造 URL:

url.format()

url.format() 方法可以将一个 URL 对象转换成 URL 字符串。具体用法如下:

const url = require('url');
const myURL = {
  protocol: 'https:',
  host: 'www.example.com',
  pathname: '/path/',
  search: '?name=amy&age=20'
};

console.log(url.format(myURL)); // 'https://www.example.com/path/?name=amy&age=20'
new URL()

使用 new URL() 方法可以直接创建一个 URL 对象。具体用法如下:

const myURL = new URL('https://www.example.com/path/?name=amy');
myURL.searchParams.append('age', '20');
console.log(myURL.href); // 'https://www.example.com/path/?name=amy&age=20'

上述代码中,使用了 searchParams.append() 方法添加新的查询参数。

参考文献