nodejs URL模塊操作URL相關方法介紹
更新時間:2015年03月03日 10:10:52 投稿:junjie
這篇文章主要介紹了nodejs URL模塊操作URL相關方法介紹,本文講解了parse方法、format方法、querystring方法等,需要的朋友可以參考下
url模塊
處理HTTP請求時url模塊使用率超高,因為該模塊允許解析URL、生成URL,以及拼接URL。首先我們來看看一個完整的URL的各組成部分。
復制代碼 代碼如下:
href
-----------------------------------------------------------------
host path
--------------- ----------------------------
http: // user:pass @ host.com : 8080 /p/a/t/h ?query=string #hash
----- --------- -------- ---- -------- ------------- -----
protocol auth hostname port pathname search hash
------------
query
我們可以使用.parse方法來將一個URL字符串轉換為URL對象,示例如下。
復制代碼 代碼如下:
url.parse('http://user:pass@host.com:8080/p/a/t/h?query=string#hash');
/* =>
{ protocol: 'http:',
auth: 'user:pass',
host: 'host.com:8080',
port: '8080',
hostname: 'host.com',
hash: '#hash',
search: '?query=string',
query: 'query=string',
pathname: '/p/a/t/h',
path: '/p/a/t/h?query=string',
href: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash' }
*/
傳給.parse方法的不一定要是一個完整的URL,例如在HTTP服務器回調函數(shù)中,request.url不包含協(xié)議頭和域名,但同樣可以用.parse方法解析。
復制代碼 代碼如下:
http.createServer(function (request, response) {
var tmp = request.url; // => "/foo/bar?a=b"
url.parse(tmp);
/* =>
{ protocol: null,
slashes: null,
auth: null,
host: null,
port: null,
hostname: null,
hash: null,
search: '?a=b',
query: 'a=b',
pathname: '/foo/bar',
path: '/foo/bar?a=b',
href: '/foo/bar?a=b' }
*/
}).listen(80);
.parse方法還支持第二個和第三個布爾類型可選參數(shù)。第二個參數(shù)等于true時,該方法返回的URL對象中,query字段不再是一個字符串,而是一個經(jīng)過querystring模塊轉換后的參數(shù)對象。第三個參數(shù)等于true時,該方法可以正確解析不帶協(xié)議頭的URL,例如//www.example.com/foo/bar。
反過來,format方法允許將一個URL對象轉換為URL字符串,示例如下。
復制代碼 代碼如下:
url.format({
protocol: 'http:',
host: 'www.example.com',
pathname: '/p/a/t/h',
search: 'query=string'
});
/* =>
'http://www.example.com/p/a/t/h?query=string'
*/
另外,.resolve方法可以用于拼接URL,示例如下。
復制代碼 代碼如下:
url.resolve('http://www.example.com/foo/bar', '../baz');
/* =>
http://www.example.com/baz
*/
Query String
querystring模塊用于實現(xiàn)URL參數(shù)字符串與參數(shù)對象的互相轉換,示例如下。
復制代碼 代碼如下:
querystring.parse('foo=bar&baz=qux&baz=quux&corge');
/* =>
{ foo: 'bar', baz: ['qux', 'quux'], corge: '' }
*/
querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' });
/* =>
'foo=bar&baz=qux&baz=quux&corge='
*/
相關文章
使用Node.js find-up在父目錄中高效尋找文件與目錄
find-up 是一個小巧但功能強大的 Node.js 包,它能幫助我們實現(xiàn)這一需求,本文將深入探究如何使用 find-up 進行有效搜索,并結合豐富的代碼演示幫助大家快速掌握其用法,需要的朋友可以參考下2024-05-05
Node.js使用sharp庫實現(xiàn)PNG圖片轉換為WebP格式
在 Node.js 中,可以使用 sharp 庫將 PNG 圖片轉換為 WebP 格式,sharp 是一個高性能的圖像處理庫,支持多種圖像格式的轉換和處理,以下是如何使用 sharp 將 PNG 圖片轉換為 WebP 的詳細步驟,需要的朋友可以參考下2024-12-12

