node中的path.resolve


path.resolve([arg1,arg2,...])根據參數的不同,返回值存在兩種情況。

以下為參數的兩種情況:

1.每個參數都不帶'/',比如path.resolve(),或者path.resolve('path1','path2'),或者path.resolve('./path');

2.一個或多個參數最開頭帶'/'符號 path.resolve('/path');

返回值分別為:

1.絕對路徑

2.相對路徑

 

下面具體分析:

1.參數為空:

*path.resolve()或者paht.resolve('')

輸出:當前文件所在文件夾路徑  === __dirname

 

2.參數為文件夾名字(參數>=1):

*path.resolve('path')

輸出:當前文件所在文件夾絕對路徑/path

*或者 path.resolve('path1','path2')

輸出:當前文件所在文件夾絕對路徑/path1/path2

*或者 path.resolve('path1','path2'.......'pathX')

輸出:當前文件所在文件夾絕對路徑/path1/path2...../pathX

3. 某個參數為'./'+文件名

*path.resolve('./path')

輸出:當前文件所在文件夾絕對路徑/path

*或者path.resolve('path1','./path2')

輸出:當前文件所在文件夾絕對路徑/path1/path2

 

 

4.文件夾名字前加了'/'

注意,無論是第幾個文件前加了/!!!最終路徑都為:/+‘最后一個前面加/的文件文件名’+‘剩下文件夾’

好的,我知道上面那句話很難懂,那就看例子

4.1.path.resolve('/path')

輸出: /path

4.2.

4.2.1path.resolve('path1','path2','/path3') 

*前兩個path前沒有斜杠,只最后一個有

輸出: /path2

4.2.2.path.resolve('path1','/path2','/path3')

*后面兩個path都有斜杠

輸出:/path2

看到沒,跟path1,path2,根本沒有任何關系,因為最后一個path2前面有斜杠/,所以地址為path2

4.3.path.resolve('path1','/path2','path3') 

*path2有斜杠,后面的path3沒有斜杠

輸出: /path2/path3

 

 

總結:

if(當path.resolve參數中不存在最開頭帶/的參數時)

  return 絕對路徑

else

  return /+‘最后一個前面加/的文件文件名’+‘剩下文件夾’

 

帶/的參數:舉個例子來解釋就是 '/path'。 注:不包括'./path'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM