Module 基礎模組

模組路徑

path 模組是一個核心模組,它提供了一些工具函數來處理檔案和目錄的路徑。它不會檢查路徑是否存在或是否為有效路徑​​,而是只提供了處理路徑的方法

path 模組提供的方法很多,最常用的是:

  • join():將給定的路徑片段連接在一起,並處理成標準的路徑格式。
  • resolve():將路徑或路徑片段的序列解析為一個絕對路徑。
  • basename():返迴路徑中路徑的最後一部分。
  • dirname():傳回指定路徑的目錄名稱。
  • extname():傳迴路徑中檔案的副檔名。

以下是這些方法的範例程式碼:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
const path = require('path'); // connect path segments using the platform-specific separator as a delimiter, console.log(path.join('/usr', 'local', 'bin')); // output: /usr/local/bin // resolve a sequence of paths or path segments into an absolute path console.log(path.resolve('/foo/bar', './baz')); // output: /foo/bar/baz // return the last portion of a path console.log(path.basename('/foo/bar/baz')); // output: baz // return the directory name of a path console.log(path.dirname('/foo/bar/baz')); // output: /foo/bar // return the extension of the path, from the last '.' to end of string in the last portion of the path console.log(path.extname('/foo/bar/baz.txt')); // output: .txt

除了上述方法,path 模組還提供了許多其他的方法,如normalize()、delimiter、posix、win32 等等,用於處理路徑的規範化、路徑分隔符號、路徑格式的處理等等。這些方法在實際開發中也常用到。

path 模組為我們處理路徑提供了許多方便的工具函數,可以讓我們更方便地處理檔案和目錄路徑,是開發中不可或缺的工具之一。

靜態函數

normalize

標準化路徑,處理路徑中父目錄等訊息

1
static String path.normalize(String path);

呼叫參數:

  • path: String, 給定的未處理的路徑

回傳結果:

  • String, 返回經過處理的路徑

basename

查詢路徑中的檔案名稱,若指定副檔名,則自動取消符合的副檔名

1 2
static String path.basename(String path, String ext = "");

呼叫參數:

  • path: String, 給定查詢的路徑
  • ext: String, 指定副檔名,若檔案名稱中有符合條件的副檔名,將自動取消

回傳結果:

  • String, 回傳檔案名稱

extname

查詢路徑中的檔案副檔名

1
static String path.extname(String path);

呼叫參數:

  • path: String, 給定查詢的路徑

回傳結果:

  • String, 返回得到的擴展名

format

嘗試將一個物件格式化為路徑

1
static String path.format(Object pathObject);

呼叫參數:

  • pathObject: Object, 對象

回傳結果:

  • String, 返回格式化後的路徑

pathObject 支援的參數如下:

1 2 3 4 5 6 7
{ "root": "/", "dir": "/a/b", "base": "c.ext", "ext": ".ext", "name": "c" }

parse

解析路徑為路徑對象

1
static NObject path.parse(String path);

呼叫參數:

  • path: String, 路徑

回傳結果:

  • NObject, 傳回pathObject 對象

dirname

查詢路徑中的目錄路徑

1
static String path.dirname(String path);

呼叫參數:

  • path: String, 給定查詢的路徑

回傳結果:

  • String, 返回得到的目錄的路徑

fullpath

轉換給定路徑為全路徑

1
static String path.fullpath(String path);

呼叫參數:

  • path: String, 給定轉換的路徑

回傳結果:

  • String, 返回轉換的全路徑

isAbsolute

識別給定的路徑是否為絕對路徑

1
static Boolean path.isAbsolute(String path);

呼叫參數:

  • path: String, 給定需要辨識的路徑

回傳結果:

  • Boolean, 是絕對路徑則回傳true

join

合併一系列路徑成為單一路徑

1
static String path.join(...ps);

呼叫參數:

  • ps: ..., 一個或多個相關的路徑

回傳結果:

  • String, 返回得到的新路徑

resolve

合併一系列路徑成為絕對路徑

1
static String path.resolve(...ps);

呼叫參數:

  • ps: ..., 一個或多個相關的路徑

回傳結果:

  • String, 返回得到的新路徑

relative

求_from 到to 的相對路徑

1 2
static String path.relative(String _from, String to);

呼叫參數:

  • _from: String, 來源路徑
  • to: String, 目標路徑

回傳結果:

  • String, 返回得到的相對路徑

toNamespacedPath

轉換成namespace-prefixed 路徑。只在windows 有效,其他系統直接回傳。

1
static Value path.toNamespacedPath(Value path = undefined);

呼叫參數:

  • path: Value, 給定的路徑。

回傳結果:

  • Value, 返回得到的新路徑

see: https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces

靜態屬性

sep

String, 查詢目前作業系統的路徑分割字符,posix 回傳'/', windows 返回'\'

1
static readonly String path.sep;

delimiter

String, 查詢目前作業系統的多路徑組合字符,posix 回傳':', windows 返回';'

1
static readonly String path.delimiter;

posix

Object, posix 實現,參見path_posix

1
static readonly Object path.posix;

win32

Object, windows 實現,參見path_win32

1
static readonly Object path.win32;