Object 內建對象

物件UrlObject

UrlObject 是用來表示URL 資訊的一種對象,我們可以方便地使用UrlObject 物件表示和操作一個URL 位址。

UrlObject 封裝了許多有用的方法和屬性,例如parse 和format 等方法,可以快速地對URL 進行解析和格式化。

對於UrlObject 對象,我們可以透過以下方式進行建立:

  1. 使用url字串建立UrlObject。在這個方法中,parse 會自動將URL 進行解析,如果URL 不合法,將會拋出例外:
1 2 3 4
const url = require('url'); const parsedURL = url.parse('https://www.google.com'); console.log(parsedURL);
  1. 使用建構參數建立UrlObject:
1 2 3 4 5 6 7 8 9 10 11 12
const 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 物件建構函數,使用參數建構

1
new UrlObject(Object args);

呼叫參數:

  • args: Object, 指定建構參數的字典對象,支援的欄位有:protocol, slashes, username, password, hostname, port, pathname, query,hash

UrlObject 物件建構函數,使用url字串構造

1 2 3
new 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地址描述,此描述由其他所有屬性組裝而成

1
String UrlObject.href;

protocol

String, 查詢並設定目前UrlObject 物件中的協定名稱

1
String UrlObject.protocol;

slashes

Boolean, 查詢和設定目前UrlObject 物件是否包含雙斜杠

1
Boolean UrlObject.slashes;

auth

String, 查詢並設定目前UrlObject 物件中的完整驗證字串,由username 和password 屬性組裝而成

1
String UrlObject.auth;

username

String, 查詢並設定目前UrlObject 物件中的驗證用戶

1
String UrlObject.username;

password

String, 查詢並設定目前UrlObject 物件中的驗證密碼

1
String UrlObject.password;

host

String, 查詢並設定目前UrlObject 物件中的完整主機描述,由hastname 和port 組裝而成

1
String UrlObject.host;

hostname

String, 查詢並設定目前UrlObject 物件中的主機名

1
String UrlObject.hostname;

port

String, 查詢並設定目前UrlObject 物件中的連接埠號

1
String UrlObject.port;

path

String, 查詢並設定目前UrlObject 物件中的請求完整路徑(含請求),由pathname 和query 組裝而成

1
String UrlObject.path;

pathname

String, 查詢並設定目前UrlObject 物件中的路徑

1
String UrlObject.pathname;

String, 查詢並設定目前UrlObject 物件中的請求字串(含「?」),等效於「?」+query

1
String UrlObject.search;

query

Value, 查詢並設定目前UrlObject 物件中的請求字串( 不含「?」)

1
Value UrlObject.query;

hash

String, 查詢並設定目前UrlObject 物件中的請求錨點(含「#」)

1
String UrlObject.hash;

searchParams

HttpCollection, 查詢目前UrlObject 物件中的請求字串( 不含“?”)

1
readonly HttpCollection UrlObject.searchParams;

成員函數

parse

解析一個url字串

1 2 3
UrlObject.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

1
UrlObject.format(Object args);

呼叫參數:

  • args: Object, 指定建構參數的字典對象,支援的欄位有:protocol, slashes, username, password, hostname, port, pathname, query,hash

resolve

重定位url路徑,自動辨識新路徑為相對路徑或絕對路徑

1
UrlObject UrlObject.resolve(String url);

呼叫參數:

  • url: String, 指定新的路徑

回傳結果:

  • UrlObject, 傳回包含重定位資料的對象

normalize

標準化路徑

1
UrlObject.normalize();

toString

傳回物件的字串表示,一般回傳"[Native Object]",物件可以根據自己的特性重新實現

1
String UrlObject.toString();

回傳結果:

  • String, 傳回物件的字串表示

toJSON

傳回物件的JSON 格式表示,一般傳回物件定義的可讀屬性集合

1
Value UrlObject.toJSON(String key = "");

呼叫參數:

  • key: String, 未使用

回傳結果:

  • Value, 傳回包含可JSON 序列化的值