第5天認真學習 Node.js - __dirname、__filename 與 path 模組

更新 發佈閱讀 3 分鐘

前言

在開發 Node.js 專案時,我們很常需要處理「路徑」:
- 要找到一個檔案在哪裡
- 要讀取設定檔
- 要指定靜態檔案位置(像是 HTML、圖片)

這邊,Node.js幫我準備了兩個方便的全域變數:__dirname__filename,與超好用的核心模組 path

__dirname、__filename

它們是 Node.js 預設就幫你放好的全域變數

  • __dirname:代表目前檔案所在的資料夾
  • __filename:代表目前檔案的完整路徑(包含檔名)
__dirname、__filename使用範例

__dirname、__filename使用範例

Node模組—Path

Node.js PATH API 文件

為什麼需要 path 模組?

如果我們要組合路徑、取副檔名、跨平台處理(Windows 用\,mac/Linux 用 /),光靠 __dirname__filename 不方便。

Path常見API:

  • path.dirname()所在資料夾路徑
  • path.join() :路徑組合
  • path.basename()抓檔名
  • path.extname()抓副檔名
  • path.parse()分析路徑

示範path的API運用

var path = require('path'); 

// 抓目錄路徑
console.log(path.dirname('/src/scripts/hello.js'));
// 路徑合併
console.log(path.join(__dirname,'/src'));
// 抓檔名
console.log(path.basename('/src/scripts/hello.js'));
// 抓副檔名
console.log(path.extname('/src/scripts/hello.js'));
// 分析路徑
console.log(path.parse('/src/scripts/hello.js'));
示範path的API運用圖

示範path的API運用圖

貼合實際專案的情境

var path = require('path'); 

console.log("資料夾:", path.dirname(__filename));
console.log("檔名:", path.basename(__filename));
console.log("副檔名:", path.extname(__filename));
console.log("分析路徑:", path.parse(__filename));

const filePath = path.join(__dirname, 'public', 'index.html');
console.log("組合路徑:", filePath);
實際專案情境圖

實際專案情境圖


留言
avatar-img
留言分享你的想法!
avatar-img
邁向躺平的工程師 Leo
0會員
6內容數
天生宅習慣的我,與外面繁忙的工作環境格格不入,因此選擇了能在辦公室內進行的軟體工程師職業。雖然室內的空間不如外面那麼廣闊,但在舒適的環境中,我可以心無旁鶩地靜下心來,專注於研發與思考。這條轉職路線,正是天生為我開好的選擇,成為了我日常的 RD 養成之旅。
2025/08/26
這篇文章介紹 Node.js 內建的 HTTP 模組,說明如何使用 createServer、request、response 和 listen 方法建立 Web Server,並提供測試和除錯技巧。
Thumbnail
2025/08/26
這篇文章介紹 Node.js 內建的 HTTP 模組,說明如何使用 createServer、request、response 和 listen 方法建立 Web Server,並提供測試和除錯技巧。
Thumbnail
2025/08/25
這篇文章說明如何在 Node.js 中使用 require() 與 module.exports (以及 exports) 來設計模組,並在 app.js 中載入 data.js 模組。文中包含步驟、進階用法、exports 與 module.exports 的比較,以及注意事項。
Thumbnail
2025/08/25
這篇文章說明如何在 Node.js 中使用 require() 與 module.exports (以及 exports) 來設計模組,並在 app.js 中載入 data.js 模組。文中包含步驟、進階用法、exports 與 module.exports 的比較,以及注意事項。
Thumbnail
2025/08/24
這篇文章說明瀏覽器 (Browser) 與 Node.js 全域物件的差異,以及如何在 Node.js 中將變數掛載到全域物件。
Thumbnail
2025/08/24
這篇文章說明瀏覽器 (Browser) 與 Node.js 全域物件的差異,以及如何在 Node.js 中將變數掛載到全域物件。
Thumbnail
看更多
你可能也想看
Thumbnail
Node.js是一個JavaScript運行環境。它使用了一個非阻塞、事件驅動的I/O模型,使其非常適合用於數據密集型的即時應用程序。簡單來說,Node.js允許你使用JavaScript來編寫伺服器端代碼。 nvm 安裝nvm Windows : 點擊 Releases · coreybut
Thumbnail
Node.js是一個JavaScript運行環境。它使用了一個非阻塞、事件驅動的I/O模型,使其非常適合用於數據密集型的即時應用程序。簡單來說,Node.js允許你使用JavaScript來編寫伺服器端代碼。 nvm 安裝nvm Windows : 點擊 Releases · coreybut
Thumbnail
本章節將引導你如何建立一個TypeScript開發環境,這包括安裝Node.js、npm和TypeScript,建立一個TypeScript項目,設置編輯器,以及編寫和編譯TypeScript代碼。在完成這些步驟之後,你將能夠編寫、編譯和運行TypeScript代碼。
Thumbnail
本章節將引導你如何建立一個TypeScript開發環境,這包括安裝Node.js、npm和TypeScript,建立一個TypeScript項目,設置編輯器,以及編寫和編譯TypeScript代碼。在完成這些步驟之後,你將能夠編寫、編譯和運行TypeScript代碼。
Thumbnail
本章目的是為讀者提供有關如何設置JavaScript開發環境的知識,包括在瀏覽器、Node.js和各種編輯器和IDE中編寫和運行JavaScript的信息。此外,本章還介紹了如何架設本地開發伺服器以模擬實際的網頁環境。這些知識對於希望開發前端應用或後端服務的JavaScript開發者來說都是必要的。
Thumbnail
本章目的是為讀者提供有關如何設置JavaScript開發環境的知識,包括在瀏覽器、Node.js和各種編輯器和IDE中編寫和運行JavaScript的信息。此外,本章還介紹了如何架設本地開發伺服器以模擬實際的網頁環境。這些知識對於希望開發前端應用或後端服務的JavaScript開發者來說都是必要的。
Thumbnail
Express 是一個流行的 web 框架,使用 JavsScript 實現,執行在 node 環境上,主要用來寫後端應用。
Thumbnail
Express 是一個流行的 web 框架,使用 JavsScript 實現,執行在 node 環境上,主要用來寫後端應用。
Thumbnail
npm(全名 Node Package Manager,node套件管理器)
Thumbnail
npm(全名 Node Package Manager,node套件管理器)
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News