簡體   English   中英

path.resolve 與 Node.js 中的相對路徑?

[英]path.resolve vs. relative path in Node.js?

我經常在節點中看到這樣的例子:

process.env.GOOGLE_APPLICATION_CREDENTIALS = path.resolve(__dirname, 'credentials.json')

我知道path在處理更復雜的情況時是一個有用的模塊,但在這種情況下,為什么不直接使用

process.env.GOOGLE_APPLICATION_CREDENTIALS = './credentials.json'

文檔中:

當前模塊的目錄名。 這與 __filename 的 path.dirname() 相同。

這意味着使用它時:

process.env.GOOGLE_APPLICATION_CREDENTIALS = './credentials.json'

NodeJS 將在當前工作目錄中查找credentials.json

使用時:

process.env.GOOGLE_APPLICATION_CREDENTIALS = path.resolve(__dirname, 'credentials.json')

NodeJS 將在該模塊所在的同一目錄中查找credentials.json

假設您有這樣的目錄結構:

/
+-- home
|   +-- USERNAME
|       +-- project
|           +-- index.js
|           +-- credentials.json

如果您運行以下命令(從根目錄/ ):

cd home/USERNAME/project
node index.js

在這兩種情況下,代碼都可以正常工作。

但是如果你這樣運行它

node home/USERNAME/project/index.js

使用path.resolve你會得到: home/USERNAME/project/credentials.json這是正確的

如果沒有它,您將得到: ./credentials.json ,這是錯誤的,因為您當前的目錄是/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM