URL.format(urlObject)是URL類提供的內置API,該API接受一個對象或字符串並返回從該對象或字符串派生的格式化字符串。
用法:
const url.format(urlObject)
如果urlObject不是對象或字符串,則它將引發TypeError。返回值:返回從urlObject中刪除的字符串。
urlObject可以具有以下字段或鍵:
- protocol
- slashes
- auth
- hostname
- host
- port
- pathname
- search
- query
- hash
格式化過程如下:
- 1.最初,一個空字符串(‘result)創建,然後按順序查找以下參數。
2. urlObject.protocol:string
- 如果urlObject.protocol是一個字符串,則將其附加到結果後麵;否則,如果不是undefined而不是字符串,則將引發Error。
- 如果urlObject.protocol不以ASCII冒號(:)結尾,則將文字“:”附加到結果中。
-
3. urlObject.slashes:boolean
- 如果以下任一屬性為true,則在結果後附加文字“ //”:
- urlObject.slashaes是真的。
- urlObject.protocol是http,https,ftp,gopher或file,則即使斜杠為false,斜杠也將自動為true。
-
4. urlObject.auth:string
- 如果urlObject.auth未被定義,並且urlObject.host或urlObject.hostname也未被定義,則auth將以文字“ @”附加到結果後,而不考慮文字“ @”是否結尾。
-
5. urlObject.host:string
- 如果urlObject.host是一個字符串,則將其附加到結果後麵;否則,如果不是undefined而不是字符串,則將引發Error。
- 如果未定義,則考慮urlObject.hostname。
-
6. urlObject.hostname:string
- 如果urlObject.hostname是一個字符串,它將附加到結果中,否則,如果不是undefined而不是字符串,則將引發Error。
- 如果同時定義了主機名和主機名,則將考慮主機。
-
7. urlObject.port:(number | string)
- 如果考慮了主機名並且定義了urlObject.port,則文字“:”將與urlObject.port一起附加到結果中。
-
8. urlObject.pathname:string
- 如果urlObject.pathname是一個字符串,但不是空字符串,並且不是以文字“ /”開頭,則將文字“ /”附加到結果中。
- urlObject.pathname附加到結果中。
- 其他UrlObject.pathname不是字符串,則引發錯誤。
-
9. urlObject.search:string
- 如果urlObject.search是一個字符串,但不是空字符串,並且不是以立即數“?”開頭,則將立即數“?”附加到結果中。
- 被附加到結果中。
- 如果urlObject.search不是字符串,則拋出錯誤。
-
10. urlObject.query:Object
- 如果urlObject.query是一個Object,則將文字“?”與通過傳遞urlObject.query的值調用查詢字符串模塊的stringify()方法的輸出一起添加到結果中。
- 如果同時定義了urlObject.search和urlObject.query,則僅考慮urlObject.search。
-
11. urlObject.hash:string
- 如果urlObject.hash是一個字符串但不是空字符串,並且不是以文字“#”開頭,則將文字“#”附加到結果中。
- urlObject.hash被附加到結果中。
- 否則urlObject.hash不是字符串,並且不是未定義的,則引發錯誤。
- 12.最後,result返回。
例子1
/*
node program to demonstrate the URL.format API.
*/
//importing the module 'url'
const url = require('url');
//creating and initializing urlObject
var urlObject={
protocol:'https',
hostname:'example.com',
port:1800,
pathname:'sample/path',
query:{
page:1,
format:'json'
},
hash:'first'
}
//getting the derieved URL from urlObject using the url.format function
var sampleUrl=url.format(urlObject);
//Display the returned value
console.log(sampleUrl.toString());
Output: https://example.com:1800/sample/path?page=1&format=json#first
例子2
/*
node program to demonstrate the URL.format API.
*/
//importing the module 'url'
const url = require('url');
//creating and initializing urlObject
var urlObject={
protocol:'prct',
slashes:false,
host:'example.com',
auth:'abc',
pathname:'/sample/path',
search:'something',
hash:'first'
}
//getting the derieved URL from urlObject using the url.format function
var sampleUrl=url.format(urlObject);
//Display the returned value
console.log(sampleUrl.toString());
Output: prct:abc@example.com/sample/path?something#first
注意:上麵的程序將通過使用節點fileName.js命令進行編譯和運行。
參考:
https://nodejs.org/api/url.html#url_url_format_urlobject
相關用法
- Node.js URL.pathToFileURL用法及代碼示例
- Node.js URL.fileURLToPath用法及代碼示例
- Node.js URLSearchParams.has()用法及代碼示例
- Node.js URL.href用法及代碼示例
- Node.js URL.password用法及代碼示例
注:本文由純淨天空篩選整理自Vinod Tahelyani大神的英文原創作品 Node | URL.format(urlObject) API。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。