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(‘data’, ‘test.txt’) 在 Linux 和 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,‘a’,{},‘b’)); 而且path.join()還會幫我們做路徑字符串的校驗,當字符串不合法時,會拋出錯誤:Path must be a string.
二、path.resolve()方法
path.resolve()方法是以程序為根目錄,作為起點,根據參數解析出一個絕對路徑
以應用程序為根目錄
普通字符串代表子目錄
/代表絕對路徑根目錄
console.log(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\webpack\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.js中path.join()優勢例舉分析的文章就介紹到這瞭,更多相關Node.js中path.join()的優勢內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- nodejs中的讀取文件fs與文件路徑path解析
- vue項目啟動命令個人學習記錄
- 使用webpack和rollup打包組件庫的方法
- webpack-dev-server的安裝使用教程
- vue @ ~ 相對路徑 路徑別名設置方式