url
模块是Node.js的内置库,用于处理和解析URL。你可以使用它来解析URL、提取URL的不同部分(如协议、主机、端口、路径等)、解析查询字符串和组合URL。
以下是一些常见的使用示例:
1. 解析URL
你可以使用url.parse
方法来解析一个URL字符串,并得到一个包含其各个组成部分的对象。
const url = require('url');
const parsedUrl = url.parse('http://example.com/path?name=value#hash');
console.log(parsedUrl.protocol); // 输出 'http:'
console.log(parsedUrl.host); // 输出 'example.com'
console.log(parsedUrl.path); // 输出 '/path?name=value'
2. 解析查询字符串
url
模块与querystring
模块一起使用,可以解析URL中的查询字符串。
const url = require('url');
const querystring = require('querystring');
const parsedUrl = url.parse('http://example.com/path?name=value&key=otherValue');
const parsedQuery = querystring.parse(parsedUrl.query);
console.log(parsedQuery.name); // 输出 'value'
console.log(parsedQuery.key); // 输出 'otherValue'
3. 解析相对路径
使用url.resolve
方法可以将相对路径解析为绝对路径。
const url = require('url');
const baseUrl = 'http://example.com/dir/';
const relativePath = 'file.html';
const fullPath = url.resolve(baseUrl, relativePath);
console.log(fullPath); // 输出 'http://example.com/dir/file.html'
4. 将URL对象格式化为字符串
使用url.format
方法可以将URL对象转换回字符串。
const url = require('url');
const urlObject = {
protocol: 'http',
host: 'example.com',
pathname: '/path',
query: { name: 'value' }
};
const urlString = url.format(urlObject);
console.log(urlString); // 输出 'http://example.com/path?name=value'
注意,从Node.js v10开始,新的URL
类也可用于处理URL,它与浏览器中的URL
API保持一致。如果你使用的是较新版本的Node.js,可以考虑使用新的URL
类。