nodejs url模塊詳解

nodejs url模塊

nodejs中用戶url格式化和反格式化模塊
用于url解析、處理等操作的解決方案

1.url.parse(urlString[, parseQueryString[, slashesDenoteHost]])

  • urlString <string> 要解析的 URL 字符串土思。
  • parseQueryString <boolean> 如果為 true履澳,則 query 屬性總會通過 querystring 模塊的 parse() 方法生成一個對象笤妙。 如果為 false嘶居,則返回的 URL 對象上的 query 屬性會是一個未解析母蛛、未解碼的字符串氛驮。 默認為 false恋日。
  • slashesDenoteHost <boolean> 如果為 true箭窜,則 // 之后至下一個 / 之前的字符串會被解析作為 host毯焕。 例如,//foo/bar 會被解析為 {host: 'foo', pathname: '/bar'} 而不是 {pathname: '//foo/bar'}磺樱。 默認為 false纳猫。
    url.parse() 方法會解析一個 URL 字符串并返回一個 URL 對象。

如果urlString不是字符串將會拋出TypeError竹捉。

如果auth屬性存在但無法編碼則拋出URIError芜辕。

示例1:

var url = require("url")
var myurl="http://www.nodejs.org/some/url/?with=query&param=that#about"
parsedUrl=url.parse(myurl)

結(jié)果

{ protocol: 'http:',
  slashes: true,
  auth: null,
  host: 'www.nodejs.org',
  port: null,
  hostname: 'www.nodejs.org',
  hash: '#about',
  search: '?with=query&param=that',
  query: 'with=query&param=that',
  pathname: '/some/url/',
  path: '/some/url/?with=query&param=that',
  href: 'http://www.nodejs.org/some/url/?with=query&param=that#about' 
}

當(dāng)parse方法第二個參數(shù)為true時,結(jié)果如下

parsedUrl=url.parse(myurl,true)
{ protocol: 'http:',
  slashes: true,
  auth: null,
  host: 'www.nodejs.org',
  port: null,
  hostname: 'www.nodejs.org',
  hash: '#about',
  search: '?with=query&param=that',
  query: { with: 'query', param: 'that' },
  pathname: '/some/url/',
  path: '/some/url/?with=query&param=that',
  href: 'http://www.nodejs.org/some/url/?with=query&param=that#about' }

2.url.format(urlObject)

  • urlObject <Object> | <string> 一個 URL 對象(就像 url.parse() 返回的)块差。 如果是一個字符串侵续,則通過 url.parse() 轉(zhuǎn)換為一個對象。

url.format() 方法返回一個從 urlObject 格式化后的 URL 字符串憾儒。

如果 urlObject 不是一個對象或字符串询兴,則 url.format() 拋出 TypeError

示例

var url=require('url');  
var obj1={ protocol: 'http:',      
  slashes: true,         
  auth: null,           
  host: 'calc.gongjuji.net',   
  port: null,                 
  hostname: 'calc.gongjuji.net',  
  hash: '#one#two',              
  search: '?name=zhangsan&age=18',  
  query: 'name=zhangsan&age=18',    
  pathname: '/byte/',              
  path: '/byte/?name=zhangsan&age=18',  
  href: 'http://calc.gongjuji.net/byte/?name=zhangsan&age=18#one#two'   
};  
var url1=url.format(obj1);  
console.log(url1);//http://calc.gongjuji.net/byte/?name=zhangsan&age=18#one#two  
//請求參數(shù)為為json對象  
var obj2={ protocol: 'http:',  
slashes: true,  
auth: null,  
host: 'calc.gongjuji.net',  
port: null,  
hostname: 'calc.gongjuji.net',  
hash: '#one#two',  
search: '?name=zhangsan&age=18',  
query: { name: 'zhangsan', age: '18' }, //頁面參數(shù)部分起趾,已經(jīng)解析成對象了  
pathname: '/byte/',  
path: '/byte/?name=zhangsan&age=18',  
href: 'http://calc.gongjuji.net/byte/?name=zhangsan&age=18#one#two' };  
var url2=url.format(obj2);  
console.log(url2); //http://calc.gongjuji.net/byte/?name=zhangsan&age=18#one#two  
//缺少參數(shù)的情況  
var obj3={ protocol: null,  
slashes: true,  
auth: null,  
host: 'www.gongjuji.net',  
port: null,  
hostname: 'www.gongjuji.net',  
hash: '#one',  
search: '?name=zhangsan',  
query: { name: 'zhangsan' },  
pathname: '/byte/',  
path: '/byte/?name=zhangsan',  
href: '//www.gongjuji.net/byte/?name=zhangsan#one' };  
var url3=url.format(obj3);  
console.log(url3);//www.gongjuji.net/byte/?name=zhangsan#one  

3.url.resolve(from, to)

  • from <string> 解析時相對的基本 URL诗舰。
  • to <string> 要解析的超鏈接 URL。

url.resolve() 方法會以一種 Web 瀏覽器解析超鏈接的方式把一個目標(biāo) URL 解析成相對于一個基礎(chǔ) URL训裆。

例子

url.resolve('/one/two/three', 'four')         // '/one/two/four'
url.resolve('http://example.com/', '/one')    // 'http://example.com/one'
url.resolve('http://example.com/one', '/two') // 'http://example.com/two'

參考:
http://www.reibang.com/p/fb5278d02cc4
http://nodejs.cn/api/url.html#url_url_parse_urlstring_parsequerystring_slashesdenotehost
https://blog.csdn.net/u011127019/article/details/52350172

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末眶根,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子边琉,更是在濱河造成了極大的恐慌属百,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件变姨,死亡現(xiàn)場離奇詭異族扰,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門渔呵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來怒竿,“玉大人,你說我怎么就攤上這事扩氢「郏” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵录豺,是天一觀的道長朦肘。 經(jīng)常有香客問我,道長双饥,這世上最難降的妖魔是什么媒抠? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮兢哭,結(jié)果婚禮上领舰,老公的妹妹穿的比我還像新娘夫嗓。我一直安慰自己迟螺,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布舍咖。 她就那樣靜靜地躺著矩父,像睡著了一般。 火紅的嫁衣襯著肌膚如雪排霉。 梳的紋絲不亂的頭發(fā)上窍株,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天,我揣著相機與錄音攻柠,去河邊找鬼球订。 笑死,一個胖子當(dāng)著我的面吹牛瑰钮,可吹牛的內(nèi)容都是我干的冒滩。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼浪谴,長吁一口氣:“原來是場噩夢啊……” “哼开睡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起苟耻,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤篇恒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后凶杖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胁艰,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了腾么。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片醋虏。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖哮翘,靈堂內(nèi)的尸體忽然破棺而出颈嚼,到底是詐尸還是另有隱情,我是刑警寧澤饭寺,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布阻课,位于F島的核電站,受9級特大地震影響艰匙,放射性物質(zhì)發(fā)生泄漏限煞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一员凝、第九天 我趴在偏房一處隱蔽的房頂上張望署驻。 院中可真熱鬧,春花似錦健霹、人聲如沸旺上。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宣吱。三九已至,卻和暖如春瞳别,著一層夾襖步出監(jiān)牢的瞬間征候,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工祟敛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留疤坝,地道東北人。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓馆铁,卻偏偏與公主長得像跑揉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子叼架,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理畔裕,服務(wù)發(fā)現(xiàn),斷路器乖订,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • Node.js Node.js 就是運行在服務(wù)端的 JavaScript扮饶。 Node.js 是一個基于Chrome...
    Gukson666閱讀 694評論 0 1
  • 個人入門學(xué)習(xí)用筆記、不過多作為參考依據(jù)乍构。如有錯誤歡迎斧正 目錄 簡書好像不支持錨點甜无、復(fù)制搜索(反正也是寫給我自己看...
    kirito_song閱讀 2,458評論 1 37
  • 最近認識了一位姐姐扛点,她今年35歲。 對于一位女性來說岂丘,這真的算不上一個好年齡陵究。沒辦法擁有年輕時的勇氣,也沒辦法像已...
    夏天醒了閱讀 497評論 0 0
  • 她是南方姑娘奥帘,性格溫婉铜邮、以寫字為生。她是80后暢銷書作家獨木舟寨蹋,真名叫葛婉儀松蒜。從2005年至今,她已經(jīng)出版多部長篇...
    悅恩閱讀 8,888評論 29 82