本文實例講述了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.360.cn/?src=lm&ls=n6624339d99');console.log(urlObject);var urlString = url.format({ protocol: 'https:', slashes: true, auth: null, host: 'hao.360.cn', port: null, hostname: 'hao.360.cn', hash: null, search: '?src=lm&ls=n6624339d99', query: 'src=lm&ls=n6624339d99', pathname: '/', path: '/?src=lm&ls=n6624339d99', href: 'https://hao.360.cn/?src=lm&ls=n6624339d99' })console.log(urlString);結果:
Url { protocol: 'https:', slashes: true, auth: null, host: 'hao.360.cn', port: null, hostname: 'hao.360.cn', hash: null, search: '?src=lm&ls=n6624339d99', query: 'src=lm&ls=n6624339d99', pathname: '/', path: '/?src=lm&ls=n6624339d99', href: 'https://hao.360.cn/?src=lm&ls=n6624339d99' }https://hao.360.cn/?src=lm&ls=n6624339d99var urlString2 = url.resolve('https://hao.360.cn/','?src=lm&ls=n6624339d99')console.log(urlString) //https://hao.360.cn/?src=lm&ls=n6624339d992. 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程序設計有所幫助。
新聞熱點
疑難解答