• Node.js Video Tutorials

Node.js - path.basename() 方法



Node.js 的path 模組提供了一些用於處理檔案和目錄路徑的實用程式。

在 Windows 上,Node.js 的path.basename() 方法返回指定路徑的最後一部分。而在基於 LINUX 的系統上,我們可以使用basename 命令獲取路徑的最後一部分。這對於提取路徑中的名稱很有用,無需手動解析它們。此方法會忽略尾隨目錄分隔符。

語法

以下是 path 模組中Node.js path.basename() 方法的語法:

path.basename(path[, suffix])

引數

此方法接受兩個引數。下面描述了它們。

  • path − 此引數指定特定的檔案路徑,該路徑將用於提取檔名。此引數必須作為字串傳遞。

  • suffix − 這是一個可選引數,它儲存檔案的副檔名(例如 .txt 或 .json),這些副檔名將從返回的字串中刪除。

返回值

此方法將返回一個字串,該字串指定檔案路徑的檔名部分。如果pathextension 引數不是字串值,則會丟擲TypeError

示例

如果我們將path 引數傳遞給該方法,它將返回指定path 的最後一部分。

在以下示例中,我們嘗試透過將檔案path 傳遞給 Node.js path.basename() 方法(path 模組path 引數)來獲取檔名部分。

const path = require('path');
var path_of_file = path.basename("/Users/Lenovo/Desktop/JavaScript/Nodefile.js");
console.log(path_of_file);

輸出

執行上述程式後,Node.js path.basename() 將返回檔名;包括副檔名。

Nodefile.js

示例

如果我們將pathsuffix 都傳遞給該方法,它將返回路徑的最後一部分,同時刪除suffix

在以下示例中,我們嘗試透過將副檔名(".js")傳遞給suffix 引數來獲取path 的檔名部分,但不包括副檔名。

const path = require('path');
var path_of_file = path.basename("/Users/Lenovo/Desktop/JavaScript/Nodefile.js", ".js")
console.log(path_of_file);

輸出

執行上述程式後,path.basename() 方法將返回path 的最後一部分,不包括suffix

Nodefile

示例

如果我們將非字串型別的值傳遞給path 引數,此方法將丟擲TypeError

在以下示例中,我們傳遞整數而不是字串給該方法的path 引數。

const path = require('path');
var path_of_file = path.basename(098870957214)
console.log(path_of_file);

TypeError

如果我們編譯並執行上述程式,此方法將丟擲TypeError

path.js:39
   throw new ERR_INVALID_ARG_TYPE('path', 'string', path);
   ^

TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type number
   at assertPath (path.js:39:11)
   at Object.basename (path.js:1299:5)
   at Object.<anonymous> (/home/cg/root/63a02348bb977/main.js:3:25)
   at Module._compile (internal/modules/cjs/loader.js:702:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
   at Module.load (internal/modules/cjs/loader.js:612:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
   at Function.Module._load (internal/modules/cjs/loader.js:543:3)
   at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
    at startup (internal/bootstrap/node.js:238:19)

示例

如果我們將非字串型別的值傳遞給suffix 引數,該方法將丟擲TypeError

在以下示例中,我們嘗試傳遞整數而不是字串suffix

const path = require('path');

var path_of_file = path.basename("C:/Users/Lenovo/Desktop/JavaScript/Nodefile.js", 986876)

console.log(path_of_file);

TypeError

正如我們在下面的輸出中看到的,它將丟擲TypeError

path.js:1298
   throw new ERR_INVALID_ARG_TYPE('ext', 'string', ext);
   ^

TypeError [ERR_INVALID_ARG_TYPE]: The "ext" argument must be of type string. Received type number
   at Object.basename (path.js:1298:13)
   at Object.<anonymous> (/home/cg/root/63a02348bb977/main.js:3:25)
   at Module._compile (internal/modules/cjs/loader.js:702:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)at Module.load (internal/modules/cjs/loader.js:612:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
   at Function.Module._load (internal/modules/cjs/loader.js:543:3)
   at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
   at startup (internal/bootstrap/node.js:238:19)
   at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)
nodejs_path_module.htm
廣告