📅  最后修改于: 2023-12-03 15:33:10.132000             🧑  作者: Mango
在 Node.js 中, url.parse()
是一个用于解析 URL 字符串的 API。通过解析 URL 字符串可以得到 URL 中的各个部分,包括协议、主机名、路径、查询参数等信息。该 API 能够很好地帮助我们处理 URL 相关的任务。
url.parse(urlString, parseQueryString, slashesDenoteHost)
参数说明:
urlString
: 要解析的 URL 字符串。parseQueryString
: 如果为 true,query
属性将被解析为一个对象。如果为 false,则返回一个未解析的字符串。默认为 false
。slashesDenoteHost
: 如果为 true,则将路径解释为主机名和路径。例如,//foo/bar 会被解析为 {host: 'foo', pathname: '/bar'}
而不是 {pathname: '//foo/bar'}
。默认为 false
。该 API 返回一个包含 URL 中各部分的对象。
{
protocol: 'http:', // 协议
slashes: true, // 是否有双斜杠
auth: null, // 认证信息
host: 'localhost:3000', // 主机名
port: '3000', // 端口号
hostname: 'localhost', // 主机名(不包括端口号)
hash: '#foobar', // 哈希值
search: '?foo=bar&baz=qux', // 查找参数
query: { foo: 'bar', baz: 'qux' }, // 查找参数(解析后)
pathname: '/path', // 路径名
path: '/path?foo=bar&baz=qux', // 完整路径
href: 'http://localhost:3000/path?foo=bar&baz=qux#foobar' // 完整 URL
}
const url = require('url');
const urlString = 'http://localhost:3000/path?foo=bar&baz=qux#foobar';
// 解析 URL 字符串,返回一个包含 URL 各部分的对象
const urlObj = url.parse(urlString);
console.log(urlObj.protocol); // http:
console.log(urlObj.host); // localhost:3000
console.log(urlObj.path); // /path?foo=bar&baz=qux
console.log(urlObj.query); // { foo: 'bar', baz: 'qux' }