您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關如何在nodejs項目中使用URL相關模塊,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
1.URL 模塊:用于 URL 處理與解析
1)URI 與 URL :
URI,是uniform resource identifier,統一資源標識符,用來唯一的標識一個資源。
URL是uniform resource locator,統一資源定位器,它是一種具體的URI,即URL可以用來標識一個資源,而且還指明了如何locate(定位)這個資源。
2)URL模塊中的方法:
① url.format(urlObject)
:將一個 url 對象轉為一個 url字符串
② url.parse(urlString,[Boolean],[Boolean])
:將 url 字符串地址轉為一個對象
第一個Boolean
true:則 query 屬性總會通過 querystring 模塊的 parse() 方法生成一個對象。
false:則返回的 URL 對象上的 query 屬性會是一個未解析、未解碼的字符串。
默認為 false
第二個Boolean
true:則 // 之后至下一個 / 之前的字符串會被解析作為 host。
例如,//foo/bar 會被解析為 {host: 'foo', pathname: '/bar'}
而不是 {pathname: '//foo/bar'}。
默認為 false
③ url.resolve(from,to)
:以一種 Web 瀏覽器解析超鏈接的方式把一個目標 URL 解析成相對于一個基礎 URL。
var url = require('url'); var urlObject = url.parse('https://hao.#/?src=lm&ls=n6624339d99'); console.log(urlObject);
var urlString = url.format({ protocol: 'https:', slashes: true, auth: null, host: 'hao.#', port: null, hostname: 'hao.#', hash: null, search: '?src=lm&ls=n6624339d99', query: 'src=lm&ls=n6624339d99', pathname: '/', path: '/?src=lm&ls=n6624339d99', href: 'https://hao.#/?src=lm&ls=n6624339d99' }) console.log(urlString);
結果:
Url { protocol: 'https:', slashes: true, auth: null, host: 'hao.#', port: null, hostname: 'hao.#', hash: null, search: '?src=lm&ls=n6624339d99', query: 'src=lm&ls=n6624339d99', pathname: '/', path: '/?src=lm&ls=n6624339d99', href: 'https://hao.#/?src=lm&ls=n6624339d99' }
https://hao.#/?src=lm&ls=n6624339d99 var urlString2 = url.resolve('https://hao.#/','?src=lm&ls=n6624339d99') console.log(urlString) //https://hao.#/?src=lm&ls=n6624339d99
2. querystring 模塊:用于解析與格式化 URL 查詢字符串
應用:針對于大量的參數傳遞的場景
① querystring.escape(str)
:對給定的 str 執行 URL 百分號編碼(轉譯)。
② querystring.unescape(str)
:對給定的 str 上的 URL 百分號編碼的字符執行解碼(反轉譯)。
③ querystring.parse(str,[sep,[eq,[options]]])
:方法能把一個 URL 查詢字符串(str)解析成一個鍵值對的集合。
?str <String> 要解析的 URL 查詢字符串。
?sep <String> 用于界定查詢字符串中的鍵值對的子字符串。默認為 '&'。
?eq <String> 用于界定查詢字符串中的鍵與值的子字符串。默認為 '='。
?options <Object>
?decodeURIComponent <Function> 當解碼查詢字符串中百分號編碼的字符時使用的函數。默認 querystring.unescape()。
?maxKeys <number> 指定要解析的鍵的最大數量。默認為 1000。指定為 0 則移除鍵數的限制
④ querystring.stringify(obj[, sep[, eq[, options]]])
:通過遍歷對象的自有屬性,從一個給定的 obj 產生一個 URL 查詢字符串。
?obj <Object> 要序列化成一個 URL 查詢字符串的對象。
?sep <String> 用于界定查詢字符串中的鍵值對的子字符串。默認為 '&'。
?eq <String> 用于界定查詢字符串中的鍵與值的子字符串。默認為 '='。
?options
?encodeURIComponent <Function> 當把對 URL 不安全的字符轉換成查詢字符串中的百分號編碼時使用的函數。
默認為 querystring.escape()
var querystring = require('querystring'); var a = querystring.parse('src=lm&ls=n6624339d99'); console.log(a) // { src: 'lm', ls: 'n6624339d99' }
3. http:計算機之間遵循的協議
上述就是小編為大家分享的如何在nodejs項目中使用URL相關模塊了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。