📅  最后修改于: 2023-12-03 14:44:40.681000             🧑  作者: Mango
Node.js 中提供了 URL 模块,可以用来解析、处理和操作 URL。
Node.js 中有两种方法可以解析一个 URL:
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() 方法可以直接创建一个 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() 方法获取查询参数的值。
Node.js 中同样也有两种方法可以构造 URL:
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() 方法可以直接创建一个 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() 方法添加新的查询参数。