NodeJs簡明教程將從零開始學習NodeJs相關知識,助力JS開發者構建全棧開發技術棧!linux
本文是NodeJs簡明教程的第五篇,將介紹NodeJs path模塊相關的基本操做。macos
path 模塊提供用於處理文件路徑和目錄路徑的實用工具。windows
注意:path模塊只是處理文件路徑,說白了就是字符串處理,跟文件系統無關工具
path.basename() 方法返回 path 的最後一部分,相似於 Unix 的 basename 命令。 尾部的目錄分隔符將被忽略。學習
返回帶擴展名ui
const path = require('path');
console.log(path.basename('/usr/local/a.txt'))
// 輸出 a.txt
複製代碼
返回不帶擴展名spa
const path = require('path');
console.log(path.basename('/usr/local/a.txt','.txt'))
// 輸出 a
複製代碼
path.dirname() 方法返回 path 的目錄名,相似於 Unix 的 dirname 命令。 尾部的目錄分隔符將被忽略。 path.extname() 方法返回 path 的擴展名,從最後一次出現 .(句點)字符到 path 最後一部分的字符串結束。 若是在 path 的最後一部分中沒有 . ,或者若是 path 的基本名稱(參閱 path.basename())除了第一個字符之外沒有 .,則返回空字符串。code
const path = require('path');
console.log(path.dirname('/usr/local/a.txt'))
// 輸出 /usr/local
複製代碼
path.extname() 方法返回 path 的擴展名,從最後一次出現 .(句點)字符到 path 最後一部分的字符串結束。cdn
const path = require('path');
console.log(path.extname('/usr/local/a.txt'));
// 輸出 .txt
複製代碼
path.isAbsolute() 方法檢測 path 是否爲絕對路徑。server
const path = require('path');
// linux || macosx
console.log(path.isAbsolute('/usr/local')); // 輸出 true
console.log(path.isAbsolute('usr/local')); // 輸出 false
// windows
console.log(path.isAbsolute('//server')); // 輸出 true
console.log(path.isAbsolute('\\\\server')); // 輸出 true
console.log(path.isAbsolute('c:\windows')); // 輸出 true
console.log(path.isAbsolute('foo/bar')); // 輸出 false
複製代碼
path.join() 方法使用平臺特定的分隔符做爲定界符將全部給定的 path 片斷鏈接在一塊兒,而後規範化生成的路徑。 零長度的 path 片斷會被忽略。 若是鏈接的路徑字符串是零長度的字符串,則返回 '.',表示當前工做目錄。
const path = require('path');
console.log(path.join('/a','b','c','..')); // 輸出 /a/b
console.log(path.join('.','a','b','..','c')); // 輸出 a/c
複製代碼
path.parse() 方法返回一個對象,其屬性表示 path 的重要元素。 尾部的目錄分隔符將被忽略。 返回對象屬性以下: dir 目錄 root 根目錄 base 帶擴展名的文件名或者目錄名(最後一級是目錄的狀況下) name 文件名(不帶擴展名)或目錄名 ext 文件擴展名(若是是目錄則爲空字符串)
const path = require('path');
path.parse('/home/user/dir/file.txt');
// 返回:
// { root: '/',
// dir: '/home/user/dir',
// base: 'file.txt',
// ext: '.txt',
// name: 'file' }
複製代碼
path.relative() 方法根據當前工做目錄返回 from 到 to 的相對路徑。
const path = require('path');
console.log(path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb'));
// 輸出 ../../impl/bbb
複製代碼
path.resolve() 方法將路徑或路徑片斷的序列解析爲絕對路徑。
const path = require('path');
console.log(path.resolve('/foo/bar', './baz')); // 輸出 /for/bar/baz
console.log(path.resolve('/foo/bar', '/tmp/file/');); // 輸出 /tmp/file
console.log(path.resolve('a','b','../c/img.gif'));
// 假設當前工做目錄 /home/wwwroot,上述語句輸出 /home/wwwroot/a/c/img.gif
console.log(path.resolve()); // 假設當前工做目錄 /home/wwwroot 輸出 /home/wwwroot
複製代碼
path
模塊的主要就是處理路徑相關,常常和fs
模塊共同使用。
歡迎關注Nodejs之路
公衆號得到持續更新以及在線答疑幫助。