一文帶你了解Node.js中的path模塊
Node.js和Python技術(shù)類(lèi)似, 都致力于能夠?qū)崿F(xiàn)跨平臺(tái)的通用代碼。 為此,針對(duì)路徑的拼接, Node.js提供了path模塊。 該模塊提供了一些方法來(lái)處理文件路徑,包括路徑的拼接、解析、規(guī)范化等。在本文中,田辛老師將介紹path模塊中的各個(gè)常用方法,并給出實(shí)例。同時(shí),田辛老師還將結(jié)合__dirname,提供一個(gè)綜合例子。
1 path模塊
1.1 path.join()
path.join()方法將多個(gè)路徑拼接成一個(gè)完整的路徑。它會(huì)自動(dòng)處理路徑分隔符,確保生成的路徑在不同操作系統(tǒng)上都能正常使用。
const path = require('path');
const dir = '/path/to/dir';
const filename = 'file.txt';
const filePath = path.join(dir, filename);
console.log(filePath);
// 輸出Linux:/path/to/dir/file.txt
// 輸出Windows:\path\to\dir\file.txt
1.2 path.resolve()
path.resolve()方法將路徑解析為絕對(duì)路徑。它會(huì)將相對(duì)路徑轉(zhuǎn)換為絕對(duì)路徑,并且可以處理多個(gè)參數(shù)。
const path = require('path');
const dir = '/path/to/dir';
const filename = 'file.txt';
const filePath = path.resolve(dir, filename);
console.log(filePath);
// 輸出Linux:/path/to/dir/file.txt
// 輸出Windows:E:\path\to\dir\file.txt
注意: path.join()方法和path.resolve()方法都是基于路徑的拼裝,不保證文件的存在
1.3 path.normalize()
path.normalize()方法規(guī)范化路徑,去除多余的斜杠和點(diǎn)。它會(huì)將路徑中的斜杠轉(zhuǎn)換為當(dāng)前操作系統(tǒng)的標(biāo)準(zhǔn)斜杠,并且會(huì)處理多個(gè)點(diǎn)和斜杠。
const path = require('path');
const dir = '/path/to/dir//';
const filename = './file.txt';
const filePath = path.normalize(dir + filename);
console.log(filePath);
// 輸出:/path/to/dir/file.txt
1.4 path.dirname()
path.dirname()方法獲取路徑中的目錄部分。它會(huì)返回路徑中最后一個(gè)斜杠之前的部分。
const path = require('path');
const filePath = '/path/to/dir/file.txt';
const dir = path.dirname(filePath);
console.log(dir);
// 輸出:/path/to/dir
1.5 path.basename()
path.basename()方法獲取路徑中的文件名部分。它會(huì)返回路徑中最后一個(gè)斜杠之后的部分。
const path = require('path');
const filePath = '/path/to/dir/file.txt';
const filename = path.basename(filePath);
console.log(filename); // 輸出:file.txt
1.6 path.extname()
path.extname()方法獲取路徑中的文件擴(kuò)展名部分。它會(huì)返回路徑中最后一個(gè)點(diǎn)之后的部分。
const path = require('path');
const filePath = '/path/to/dir/file.txt';
const extname = path.extname(filePath);
console.log(extname); // 輸出:.txt
2 __dirname變量
2.1 變量說(shuō)明
__dirname變量是Node.js的一個(gè)全局變量, 它表示當(dāng)前模塊所在的目錄的絕對(duì)路徑。
console.log(__dirname); // 輸出:E:\develop\node.js
2.2 __dirname 和 path.join 聯(lián)合使用
const path = require('path');
const dir = path.join(__dirname, 'files');
const filename = 'file.txt';
const filePath = path.join(dir, filename);
console.log(filePath); // 輸出:E:\develop\node.js\files\file.txt
在上面的例子中,田辛老師使用path.join()方法將__dirname和’files’拼接成一個(gè)目錄路徑,然后再將文件名拼接到目錄路徑中,得到完整的文件路徑。這樣,我們就可以方便地處理文件路徑了。
到此這篇關(guān)于一文帶你了解Node.js中的path模塊的文章就介紹到這了,更多相關(guān)Node.js path模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在Node.js中實(shí)現(xiàn)后端與前端的交互的方法詳解
在前后端不分離的應(yīng)用模式中,前端頁(yè)面看到的效果都是由后端控制,由后端渲染頁(yè)面或重定向,也就是后端需要控制前端的展示,前端與后端的耦合度很高, 所以本文給大家介紹了在Node.js中實(shí)現(xiàn)后端與前端的交互的方法,需要的朋友可以參考下2024-09-09
Node.js的Web模板引擎ejs的入門(mén)使用教程
ejs是Node世界的開(kāi)源模板引擎中比較有人氣的一個(gè),而且并不只是在Express框架中才可以使用,今天為大家?guī)?lái)Node.js的Web模板引擎ejs的入門(mén)學(xué)習(xí)教程,其中側(cè)重于ejs的layout頁(yè)面布局放面2016-06-06
Node.js中Process.nextTick()和Process.setImmediate()的區(qū)別
這篇文章介紹了Node.js中Process.nextTick()和Process.setImmediate()的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07
Node.js使用Sharp.js進(jìn)行圖像處理的實(shí)踐與技巧
Sharp.js 是一個(gè)高性能的 Node.js 圖像處理庫(kù),基于 C 語(yǔ)言編寫(xiě)的 libvips 庫(kù)封裝而來(lái),提供了便捷、高效的圖片編輯與轉(zhuǎn)換功能,以下是對(duì) Sharp.js 的深入解析,包括全方位實(shí)踐與技巧,需要的朋友可以參考下2024-08-08
基于NodeJS的前后端分離的思考與實(shí)踐(二)模版探索
在傳統(tǒng)的開(kāi)發(fā)模式中,瀏覽器端與服務(wù)器端是由不同的前后端兩個(gè)團(tuán)隊(duì)開(kāi)發(fā),但是模版卻又在這兩者中間的模糊地帶。因此模版上面總不可避免的越來(lái)越多復(fù)雜邏輯,最終難以維護(hù)。2014-09-09
基于Node.js + WebSocket打造即時(shí)聊天程序嗨聊
這篇文章主要介紹了基于Node.js + WebSocket打造即時(shí)聊天程序,有興趣的可以了解一下。2016-11-11
node工作線(xiàn)程worker_threads的基本使用
本文主要介紹了node工作線(xiàn)程worker_threads的基本使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
Node.JS枚舉統(tǒng)計(jì)當(dāng)前文件夾和子目錄下所有代碼文件行數(shù)
這篇文章主要介紹了Node.JS枚舉統(tǒng)計(jì)當(dāng)前文件夾和子目錄下所有代碼文件行數(shù),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08

