url.parse(urlString[, parseQueryString[, slashesDenoteHost]])
urlString
<string> 要解析的 URL 字符串。parseQueryString
<boolean> 如果为true
,则query
属性将始终设置为querystring
模块的parse()
方法返回的对象。 如果为false
,则返回的网址对象上的query
属性将是未解析、未解码的字符串。 默认值:false
。slashesDenoteHost
<boolean> 如果为true
,则文字串//
之后和下一个/
之前的第一个令牌将被解释为host
。 例如,给定//foo/bar
,结果将是{host: 'foo', pathname: '/bar'}
而不是{pathname: '//foo/bar'}
。 默认值:false
。
url.parse()
方法接受网址字符串,解析并返回网址对象。
如果 urlString
不是字符串,则抛出 TypeError
。
如果 auth
属性存在但无法解码,则抛出 URIError
。
url.parse()
使用一种宽松的、非标准的算法来解析 URL 字符串。
容易出现主机名欺骗、用户名和密码处理不当等安全问题。
url.parse()
是大多数旧版 API 的例外。
尽管存在安全问题,但它是旧版的,不会被弃用,因为它是:
- 比替代的 WHATWG
URL
解析器更快。 - 相对 URL 比替代的 WHATWG
URL
API 更易于使用。 - 在 npm 生态系统中被广泛依赖。
谨慎使用。
urlString
<string> The URL string to parse.parseQueryString
<boolean> Iftrue
, thequery
property will always be set to an object returned by thequerystring
module'sparse()
method. Iffalse
, thequery
property on the returned URL object will be an unparsed, undecoded string. Default:false
.slashesDenoteHost
<boolean> Iftrue
, the first token after the literal string//
and preceding the next/
will be interpreted as thehost
. For instance, given//foo/bar
, the result would be{host: 'foo', pathname: '/bar'}
rather than{pathname: '//foo/bar'}
. Default:false
.
The url.parse()
method takes a URL string, parses it, and returns a URL
object.
A TypeError
is thrown if urlString
is not a string.
A URIError
is thrown if the auth
property is present but cannot be decoded.
url.parse()
uses a lenient, non-standard algorithm for parsing URL
strings. It is prone to security issues such as host name spoofing
and incorrect handling of usernames and passwords.
url.parse()
is an exception to most of the legacy APIs. Despite its security
concerns, it is legacy and not deprecated because it is:
- Faster than the alternative WHATWG
URL
parser. - Easier to use with regards to relative URLs than the alternative WHATWG
URL
API. - Widely relied upon within the npm ecosystem.
Use with caution.