国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

nodejs URL模塊操作URL相關(guān)方法介紹

2019-11-20 13:03:05
字體:
供稿:網(wǎng)友

url模塊

處理HTTP請求時url模塊使用率超高,因為該模塊允許解析URL、生成URL,以及拼接URL。首先我們來看看一個完整的URL的各組成部分。

復(fù)制代碼 代碼如下:

                         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字符串轉(zhuǎn)換為URL對象,示例如下。
復(fù)制代碼 代碼如下:

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服務(wù)器回調(diào)函數(shù)中,request.url不包含協(xié)議頭和域名,但同樣可以用.parse方法解析。
復(fù)制代碼 代碼如下:

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模塊轉(zhuǎn)換后的參數(shù)對象。第三個參數(shù)等于true時,該方法可以正確解析不帶協(xié)議頭的URL,例如//www.example.com/foo/bar。

反過來,format方法允許將一個URL對象轉(zhuǎn)換為URL字符串,示例如下。

復(fù)制代碼 代碼如下:

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,示例如下。
復(fù)制代碼 代碼如下:

url.resolve('http://www.example.com/foo/bar', '../baz');
/* =>
 
http://www.example.com/baz
 
*/

Query String

querystring模塊用于實現(xiàn)URL參數(shù)字符串與參數(shù)對象的互相轉(zhuǎn)換,示例如下。

復(fù)制代碼 代碼如下:

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='
*/

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 铜川市| 永春县| 汉阴县| 延长县| 奎屯市| 荥阳市| 鞍山市| 长顺县| 乌兰浩特市| 宁远县| 宣武区| 镇平县| 泰兴市| 许昌县| 怀集县| 兖州市| 雷州市| 东海县| 偏关县| 武乡县| 临沧市| 金塔县| 湄潭县| 吉木乃县| 武冈市| 高密市| 定远县| 遵义市| 阿拉尔市| 房山区| 宝兴县| 东乌| 社旗县| 平顺县| 娄底市| 永德县| 楚雄市| 斗六市| 黄陵县| 达尔| 富蕴县|