物件UrlObject
UrlObject 是用來表示URL 資訊的一種對象,我們可以方便地使用UrlObject 物件表示和操作一個URL 位址。
UrlObject 封裝了許多有用的方法和屬性,例如parse 和format 等方法,可以快速地對URL 進行解析和格式化。
對於UrlObject 對象,我們可以透過以下方式進行建立:
- 使用url字串建立UrlObject。在這個方法中,parse 會自動將URL 進行解析,如果URL 不合法,將會拋出例外:
1
2
3
4const url = require('url');
const parsedURL = url.parse('https://www.google.com');
console.log(parsedURL);
- 使用建構參數建立UrlObject:
1
2
3
4
5
6
7
8
9
10
11
12const url = require('url');
const parsedURL = new url.URL({
protocol: 'https:',
hostname: 'www.google.com',
pathname: '/search',
query: {
q: 'hello world',
}
});
console.log(parsedURL);
繼承關係
建構函數
UrlObject
UrlObject 物件建構函數,使用參數建構
1new UrlObject(Object args);
呼叫參數:
- args: Object, 指定建構參數的字典對象,支援的欄位有:protocol, slashes, username, password, hostname, port, pathname, query,hash
UrlObject 物件建構函數,使用url字串構造
1
2
3new UrlObject(String url = "",
Boolean parseQueryString = false,
Boolean slashesDenoteHost = false);
呼叫參數:
- url: String, 指定建構url字串
- parseQueryString: Boolean, 指定是否解析query
- slashesDenoteHost: Boolean, 預設為false, 如果設定為true,則從字串'//'之後到下一個'/'之前的字串會被解析為host,例如'//foo/bar', 結果應該是{ host: 'foo', pathname: '/bar'}而非{pathname: '//foo/bar'}
成員屬性
href
String, 查詢並設定目前UrlObject 物件中的完整url地址描述,此描述由其他所有屬性組裝而成
1String UrlObject.href;
protocol
String, 查詢並設定目前UrlObject 物件中的協定名稱
1String UrlObject.protocol;
slashes
Boolean, 查詢和設定目前UrlObject 物件是否包含雙斜杠
1Boolean UrlObject.slashes;
auth
String, 查詢並設定目前UrlObject 物件中的完整驗證字串,由username 和password 屬性組裝而成
1String UrlObject.auth;
username
String, 查詢並設定目前UrlObject 物件中的驗證用戶
1String UrlObject.username;
password
String, 查詢並設定目前UrlObject 物件中的驗證密碼
1String UrlObject.password;
host
String, 查詢並設定目前UrlObject 物件中的完整主機描述,由hastname 和port 組裝而成
1String UrlObject.host;
hostname
String, 查詢並設定目前UrlObject 物件中的主機名
1String UrlObject.hostname;
port
String, 查詢並設定目前UrlObject 物件中的連接埠號
1String UrlObject.port;
path
String, 查詢並設定目前UrlObject 物件中的請求完整路徑(含請求),由pathname 和query 組裝而成
1String UrlObject.path;
pathname
String, 查詢並設定目前UrlObject 物件中的路徑
1String UrlObject.pathname;
search
String, 查詢並設定目前UrlObject 物件中的請求字串(含「?」),等效於「?」+query
1String UrlObject.search;
query
Value, 查詢並設定目前UrlObject 物件中的請求字串( 不含「?」)
1Value UrlObject.query;
hash
String, 查詢並設定目前UrlObject 物件中的請求錨點(含「#」)
1String UrlObject.hash;
searchParams
HttpCollection, 查詢目前UrlObject 物件中的請求字串( 不含“?”)
1readonly HttpCollection UrlObject.searchParams;
成員函數
parse
解析一個url字串
1
2
3UrlObject.parse(String url,
Boolean parseQueryString = false,
Boolean slashesDenoteHost = false);
呼叫參數:
- url: String, 指定需要解析的url字串
- parseQueryString: Boolean, 指定是否解析query
- slashesDenoteHost: Boolean, 預設為false, 如果設定為true,則從字串'//'之後到下一個'/'之前的字串會被解析為host,例如'//foo/bar', 結果應該是{ host: 'foo', pathname: '/bar'}而非{pathname: '//foo/bar'}
format
使用指定的參數建構UrlObject
1UrlObject.format(Object args);
呼叫參數:
- args: Object, 指定建構參數的字典對象,支援的欄位有:protocol, slashes, username, password, hostname, port, pathname, query,hash
resolve
重定位url路徑,自動辨識新路徑為相對路徑或絕對路徑
1UrlObject UrlObject.resolve(String url);
呼叫參數:
- url: String, 指定新的路徑
回傳結果:
- UrlObject, 傳回包含重定位資料的對象
normalize
標準化路徑
1UrlObject.normalize();
toString
傳回物件的字串表示,一般回傳"[Native Object]",物件可以根據自己的特性重新實現
1String UrlObject.toString();
回傳結果:
- String, 傳回物件的字串表示
toJSON
傳回物件的JSON 格式表示,一般傳回物件定義的可讀屬性集合
1Value UrlObject.toJSON(String key = "");
呼叫參數:
- key: String, 未使用
回傳結果:
- Value, 傳回包含可JSON 序列化的值