Node.js 中 path.resolve() 和 path.join() 的區(qū)別

文檔-path路徑

1. path.resolve()

path.resolve() 方法將路徑或路徑片段的序列解析為絕對(duì)路徑。
給定的路徑序列從右到左進(jìn)行處理量蕊,每個(gè)后續(xù)的 path 前置,直到構(gòu)造出一個(gè)絕對(duì)路徑漠畜。 例如锭沟,給定的路徑片段序列:/foo/bar配喳、 baz酪穿,調(diào)用 path.resolve('/foo', '/bar', 'baz') 將返回 /bar/baz
如果在處理完所有給定的 path 片段之后還未生成絕對(duì)路徑晴裹,則再加上當(dāng)前工作目錄被济。
生成的路徑已規(guī)范化,并且除非將路徑解析為根目錄涧团,否則將刪除尾部斜杠只磷。
零長(zhǎng)度的 path 片段會(huì)被忽略。
如果沒(méi)有傳入 path 片段泌绣,則 path.resolve() 將返回當(dāng)前工作目錄的絕對(duì)路徑钮追。

path.resolve('/foo/bar', './baz');
// 返回: '/foo/bar/baz'

path.resolve('/foo/bar', '/tmp/file/');
// 返回: '/tmp/file'

path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif');
// 如果當(dāng)前工作目錄是 /home/myself/node,
// 則返回 '/home/myself/node/wwwroot/static_files/gif/image.gif'

如果任何參數(shù)不是字符串阿迈,則拋出 TypeError元媚。

2. path.join()

path.join() 方法使用平臺(tái)特定的分隔符作為定界符將所有給定的 path 片段連接在一起,然后規(guī)范化生成的路徑苗沧。

零長(zhǎng)度的 path 片段會(huì)被忽略刊棕。 如果連接的路徑字符串是零長(zhǎng)度的字符串,則返回 '.'崎页,表示當(dāng)前工作目錄鞠绰。

path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
// 返回: '/foo/bar/baz/asdf'

path.join('foo', {}, 'bar');
// 拋出 'TypeError: Path must be a string. Received {}'

如果任何路徑片段不是字符串,則拋出 TypeError飒焦。

3. 總結(jié)

  1. path.resolve() 從右向左拼接蜈膨,如果提前遇到了/(linux or mac)根目錄符號(hào),則提前結(jié)束牺荠,因?yàn)橐呀?jīng)達(dá)到拼接出絕對(duì)路徑的目的翁巍。
  2. path.join() 無(wú)論有無(wú) /(linux or mac) 都只是進(jìn)行簡(jiǎn)單的片段連接。
  3. 二者遇到 .. 上一層級(jí)目錄的指示休雌,都會(huì)正常處理跳轉(zhuǎn)灶壶。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市杈曲,隨后出現(xiàn)的幾起案子驰凛,更是在濱河造成了極大的恐慌胸懈,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恰响,死亡現(xiàn)場(chǎng)離奇詭異趣钱,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)胚宦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門首有,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人枢劝,你說(shuō)我怎么就攤上這事井联。” “怎么了您旁?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵烙常,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我被冒,道長(zhǎng)军掂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任昨悼,我火速辦了婚禮蝗锥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘率触。我一直安慰自己终议,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布葱蝗。 她就那樣靜靜地躺著穴张,像睡著了一般。 火紅的嫁衣襯著肌膚如雪两曼。 梳的紋絲不亂的頭發(fā)上皂甘,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音悼凑,去河邊找鬼偿枕。 笑死,一個(gè)胖子當(dāng)著我的面吹牛户辫,可吹牛的內(nèi)容都是我干的渐夸。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼渔欢,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼墓塌!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤苫幢,失蹤者是張志新(化名)和其女友劉穎访诱,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體韩肝,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盐数,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了伞梯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡帚屉,死狀恐怖谜诫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情攻旦,我是刑警寧澤喻旷,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站牢屋,受9級(jí)特大地震影響且预,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜烙无,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一锋谐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧截酷,春花似錦涮拗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至三幻,卻和暖如春就漾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背念搬。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工抑堡, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人锁蠕。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓夷野,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親荣倾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子悯搔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359