url.format(urlObject)
历史
版本 | 变化 |
---|---|
v17.0.0 | 现在,当主机名的 Punycode 转换引入可能导致 URL 以不同方式重新解析的更改时,将引发 |
v15.13.0、v14.17.0 | 弃用已撤销。状态更改为"Legacy"。 |
v11.0.0 | 旧版 URL API 已弃用。使用 WHATWG URL API。 |
v7.0.0 | 无论 |
v0.1.25 | 添加于:v0.1.25 |
Stability: 3 - 旧版:改用 WHATWG URL API。
参数
urlObject
<Object> | <string> 一个 URL 对象(由url.parse()
返回或以其他方式构造)。如果是字符串,则通过将其传递给url.parse()
将其转换为对象。
url.format()
方法返回从 urlObject
派生的格式化 URL 字符串。
const url = require('node:url');
url.format({
protocol: 'https',
hostname: 'example.com',
pathname: '/some/path',
query: {
page: 1,
format: 'json'
}
});
// => 'https://example.com/some/path?page=1&format=json'
如果 urlObject
不是对象或字符串,则 url.format()
将抛出
。TypeError
格式化过程操作如下:
- 创建一个新的空字符串
result
。 - 如果
urlObject.protocol
是字符串,则按原样附加到result
。 - 否则,如果
urlObject.protocol
不是undefined
并且不是字符串,则抛出Error
- 对于所有字符串值
urlObject.protocol
,那不要结束带有 ASCII 冒号 (:
) 字符,文字字符串:
将附加到result
. - 如果以下任一条件为真,则文字字符串
//
将附加到result
:urlObject.slashes
属性为真;urlObject.protocol
以http
、https
、ftp
、gopher
或file
开头;
- 如果
urlObject.auth
属性的值为真,并且urlObject.host
或urlObject.hostname
不是undefined
,则urlObject.auth
的值将被强制转换为字符串并附加到result
后跟文字字符串@
。 - 如果
urlObject.host
属性是undefined
然后:- 如果
urlObject.hostname
是字符串,则将其附加到result
。 - 否则,如果
urlObject.hostname
不是undefined
并且不是字符串,则抛出Error
- 如果
urlObject.port
属性值是真实的,并且urlObject.hostname
不是undefined
:- 文字字符串
:
附加到result
,并且 urlObject.port
的值被强制转换为字符串并附加到result
。
- 文字字符串
- 如果
- 否则,如果
urlObject.host
属性值为真,则urlObject.host
的值被强制转换为字符串并附加到result
。 - 如果
urlObject.pathname
property 是一个非空字符串的字符串:- 如果
urlObject.pathname
不启动带有 ASCII 正斜杠 (/
),然后是文字字符串'/'
附加到result
. urlObject.pathname
的值附加到result
。
- 如果
- 否则,如果
urlObject.pathname
不是undefined
并且不是字符串,则抛出Error
- 如果
urlObject.search
属性是undefined
并且如果urlObject.query
属性是Object
,则将文字字符串?
附加到result
后跟调用querystring
stringify()
方法的输出传递urlObject.query
的值。 - 否则,如果
urlObject.search
是一个字符串:- 如果值
urlObject.search
不启动带有 ASCII 问号 (?
) 字符,文字字符串?
附加到result
. urlObject.search
的值附加到result
。
- 如果值
- 否则,如果
urlObject.search
不是undefined
并且不是字符串,则抛出Error
- 如果
urlObject.hash
属性是一个字符串:- 如果值
urlObject.hash
不启动使用 ASCII 哈希 (#
) 字符,文字字符串#
附加到result
. urlObject.hash
的值附加到result
。
- 如果值
- 否则,如果
urlObject.hash
属性不是undefined
并且不是字符串,则会抛出Error
result
返回。
相关用法
- Node.js url.format(URL[, options])用法及代码示例
- Node.js url.fileURLToPath(url)用法及代码示例
- Node.js url.domainToUnicode(domain)用法及代码示例
- Node.js url.domainToASCII(domain)用法及代码示例
- Node.js url.urlToHttpOptions(url)用法及代码示例
- Node.js url.resolve(from, to)用法及代码示例
- Node.js url.parse(urlString, parseQueryString, slashesDenoteHost)用法及代码示例
- Node.js url.domainToUnicode()用法及代码示例
- Node.js url.pathToFileURL(path)用法及代码示例
- Node.js url.toString()用法及代码示例
- Node.js urlObject.search用法及代码示例
- Node.js URLSearchParams urlSearchParams[Symbol.iterator]()用法及代码示例
- Node.js urlObject.auth用法及代码示例
- Node.js urlObject.path用法及代码示例
- Node.js urlObject.port用法及代码示例
- Node.js urlSearchParams.values()用法及代码示例
- Node.js urlObject.href用法及代码示例
- Node.js urlObject.host用法及代码示例
- Node.js urlObject.auth()用法及代码示例
- Node.js urlObject.hash用法及代码示例
- Node.js urlSearchParams.toString()用法及代码示例
- Node.js urlObject.query用法及代码示例
- Node.js urlObject.pathname用法及代码示例
- Node.js urlObject.slashes用法及代码示例
- Node.js urlObject.protocol用法及代码示例
注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 url.format(urlObject)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。