Node.js中path.join()優(yōu)勢(shì)例舉分析
您可能想知道為什么要使用 path.join() 方法而不是字符串拼接。
'/path' + '/' + 'to' + '/' + 'test.txt' // '/path/to/test.txt' ['/path', 'to', 'test.txt'].join('/') // '/path/to/test.txt'
1、對(duì)于Windows支持。Windows 使用反斜杠(\)而不是正斜杠(/)作為路徑分隔符。
path.join() 會(huì)為我們處理此問(wèn)題。因?yàn)?path.join('data', 'test.txt') 在 Linux 和 OSX 以及 Windows 上都會(huì)返回 'data/test.txt'。
2、用于處理邊緣情況。使用文件系統(tǒng)路徑時(shí),會(huì)彈出許多邊緣情況。
例如,如果您嘗試手動(dòng)連接兩個(gè)路徑,您可能會(huì)意外地得到重復(fù)的路徑分隔符。path.join() 方法為我們處理開(kāi)頭和結(jié)尾的斜杠。
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'
知識(shí)點(diǎn)擴(kuò)展:
一、path.join()方法
path.join()方法是將多個(gè)參數(shù)字符串合并成一個(gè)路徑字符串
console.log(path.join(__dirname,‘a(chǎn)',‘b')); 假如當(dāng)前文件的路徑是E:/node/1,那么拼接出來(lái)就是E:/node/1/a/b。
console.log(path.join(__dirname,'/a','/b','…')); 路徑開(kāi)頭的/不會(huì)影響拼接,…代表上一級(jí)文件,拼接出來(lái)的結(jié)果是:E:/node/1/a
console.log(path.join(__dirname,‘a(chǎn)',{},‘b')); 而且path.join()還會(huì)幫我們做路徑字符串的校驗(yàn),當(dāng)字符串不合法時(shí),會(huì)拋出錯(cuò)誤:Path must be a string.
二、path.resolve()方法
path.resolve()方法是以程序?yàn)楦夸洠鳛槠瘘c(diǎn),根據(jù)參數(shù)解析出一個(gè)絕對(duì)路徑
以應(yīng)用程序?yàn)楦夸?/p>
普通字符串代表子目錄
/代表絕對(duì)路徑根目錄
console.log(path.resolve()); 得到應(yīng)用程序啟動(dòng)文件的目錄(得到當(dāng)前執(zhí)行文件絕對(duì)路徑) E:\zf\webpack\1\src
console.log(path.resolve(‘a(chǎn)','/c')); E:/c ,因?yàn)?斜杠代表根目錄,所以得到的就是E:/c
所以我們一般拼接的時(shí)候需要小心點(diǎn)使用/斜杠
console.log(path.resolve(__dirname,‘img/so')); E:\zf\webpack\1\src\img\so 這個(gè)就是將文件路徑拼接,并不管這個(gè)路徑是否真實(shí)存在。
console.log(path.resolve(‘wwwroot', ‘static_files/png/', ‘…/gif/image.gif')) E:\zf\webpack\1\src\wwwroot\static_files\gif\image.gif
這個(gè)是用當(dāng)前應(yīng)用程序啟動(dòng)文件絕對(duì)路徑與后面的所有字符串拼接,因?yàn)樽铋_(kāi)始的字符串不是以/開(kāi)頭的。
…也是代表上一級(jí)目錄。
到此這篇關(guān)于Node.js中path.join()優(yōu)勢(shì)例舉分析的文章就介紹到這了,更多相關(guān)Node.js中path.join()的優(yōu)勢(shì)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用node.js爬取指定排名網(wǎng)站的JS引用庫(kù)詳解
最近在學(xué)習(xí)node.js爬蟲(chóng),由于 nodejs 強(qiáng)大的異步特性,讓我們可以輕松以異步高并發(fā)去爬取網(wǎng)站,下面這篇文章主要給大家介紹了關(guān)于利用node.js爬取指定排名網(wǎng)站的JS引用庫(kù)的相關(guān)資料,需要的朋友可以參考下。2017-07-07nodejs async異步常用函數(shù)總結(jié)(推薦)
這篇文章主要介紹了nodejs async異步常用函數(shù)總結(jié)的相關(guān)資料,需要的朋友可以參考下2017-11-11node.js 動(dòng)態(tài)執(zhí)行腳本
其中的Script對(duì)象,就與require('vm')返回的對(duì)象很相似,而實(shí)質(zhì)上,vm模塊就是對(duì)Script對(duì)象的封裝。2016-06-06從零學(xué)習(xí)node.js之express入門(六)
相信大家都知道Express是一個(gè)簡(jiǎn)潔而靈活的 node.js Web應(yīng)用框架, 提供了一系列強(qiáng)大特性幫助你創(chuàng)建各種 Web 應(yīng)用,和豐富的 HTTP 工具。下面這篇文章主要介紹了node.js中express的入門知識(shí),需要的朋友可以參考下。2017-02-02