vocus logo

方格子 vocus

第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
邁向躺平的工程師 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
本章節將引導你如何建立一個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
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
npm(全名 Node Package Manager,node套件管理器)
Thumbnail
npm(全名 Node Package Manager,node套件管理器)
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
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News