1. 程式人生 > 程式設計 >Node.js中path.join()優勢例舉分析

Node.js中path.join()優勢例舉分析

您可能想知道為什麼要使用 path.join() 方法而不是字串拼接。

'/path' + '/' + 'to' + '/' + 'test.txt' // '/path/to/test.txt'
 
['/path','to','test.txt'].join('/') // '/path/to/test.txt'

1、對於Windows支援。Windows 使用反斜槓(\)而不是正斜槓(/)作為路徑分隔符。

path.join() 會為我們處理此問題。因為 path.join(OmUWHrLtvM'data','test.txt') 在 和 OSX 以及 Windows 上都會返回 'data/test.txt'。

2、用於處理邊緣情況。使用檔案系統路徑時,會彈出許多邊緣情況。

例如,如果您嘗試手動連線兩個路徑,您可能會意外地得到重複的路徑分隔符。path.join() 方法為我們處理開頭和結尾的斜槓。

path.join('data','test.txt') // 'data/test.txt'
path.join('data','/test.txt') // 'data/test.txt'
path.join('data/','test.txt') // 'data/test.txt'
path.join('data/','/test.txt') // 'data/test.txt'

知識點擴充套件:

一、path.join()方法

path.join()方法是將多個引數字串合併成一個路徑字串

console.log(path.join(__dirname,‘a',‘b')); 假如當前檔案的路徑是E:/node/1,那麼拼接出來就是E:/node/1/a/b。

console.log(path.join(__dirname,'/a','/b','…')); 路徑開頭的/不會影響拼接,…代表上一級檔案,拼接出來的結果是:E:/node/1/a

console.log(path.join(__dirname,{},‘b')); 而且path.join()還會幫我們做路徑字串的校驗,當字串不合法時,會丟擲錯誤:Path must be a string.

二、path.resolve()方法

path.resolve()方法是以程式為根目錄,作為起點,根據引數解析出一個絕對路徑

以應用程式為根目錄

普通字串代表子目錄

/代表絕對路徑根目錄

consolehttp://www.cppcns.com.lOmUWHrLtvMog(path.resolve()); 得到應用程式啟動檔案的目錄(得到當前執行檔案絕對路徑) E:\zf\webpack\1\src

console.log(path.resolve(‘a','/c')); E:/c ,因為/斜槓代表根目錄,所以得到的就是E:/c

所以我們一般拼接的時候需要小心點使用/斜槓

console.log(path.resolve(__dirname,‘img/so')); E:\zf\www.cppcns.comwebpack\1\src\img\so 這個就是將檔案路徑拼接,並不管這個路徑是否真實存在。

console.log(path.resolve(‘wwwroot',‘static_files/png/',‘…/gif/image.gif')) E:\zf\webpack\1\src\wwwroot\static_files\gif\image.gif

這個是用當前應用程式啟動檔案絕對路徑與後面的所有字串拼接,因為最開始的字串不是以/開頭的。

…也是代表上一級目錄。

到此這篇關於Node.中path.join()優勢例舉分析的文章就介紹到這了,更多相關Node.js中path.join()的優勢內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!