欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node.js常用三大模塊之path模塊

 更新時間:2022年09月14日 15:25:56   作者:前端小白在前進(jìn)  
在node.js中常用的三大模塊中還有一個是path模塊,主要是為了便利用戶處理路徑問題,如果我們在引入文件的時候經(jīng)常會受到../和./的干擾,那么這個path模塊將會很好的幫助你

相對路徑和絕對路徑

概念

在這里首先先復(fù)習(xí)一下相對路徑和絕對路徑:

  • 絕對路徑 : 文件真實的存放位置  (以Web 站點根目錄為參考基礎(chǔ)的目錄路徑。之所以稱為絕對,意指當(dāng)所有網(wǎng)頁引用同一個文件時,所使用的路徑都是一樣的。其實絕對路徑與相對路徑的不同處,只在于描述目錄路徑時,所采用的參考點不同。由于對網(wǎng)站上所有文件而言,根目錄這個參考點對所有文件都是一樣的,因此,運用以根目錄為參考點的路徑描述方式才會被稱之為絕對路徑)
  • 相對路徑 : 相對于當(dāng)前位置的路徑 (以引用文件之網(wǎng)頁所在位置為參考基礎(chǔ),而建立出的目錄路徑。因此,當(dāng)保存于不同目錄的網(wǎng)頁引用同一個文件時,所使用的路徑將不相同,故稱之為相對)

路徑特殊符號

"./" ------ 代表目前所在的目錄,相對路徑

"../" ------ 代表上一層目錄,相對路徑

"../../" ------ 代表的是上一層目錄的上一層目錄,相對路徑

"/" ------ 代表根目錄,絕對路徑

"C:/users/" ------ 代表根目錄,絕對路徑

示例:

一般情況下我們不會去使用絕對路徑引入文件,一般使用相對路徑,因為相對路徑會更加的靈活,以及在書寫的項目上線的時候使用絕對路徑將很麻煩,相對路徑y(tǒng)yds!

現(xiàn)在需要實現(xiàn)一個小功能,將該圖片以不同形式引入到html文件中:

絕對路徑

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    img {
        width: 1200px;
        height: 700px;
    }
</style>
<body>
    <img src="/image/23on23-01_2.jpg" alt="">
</body>
</html>

在這里使用了路徑符號/,/這個符號代表了根目錄(D:/node復(fù)盤/03)。

相對路徑

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    img {
        width: 1200px;
        height: 700px;
    }
</style>
<body>
    <img src="./image/23on23-01_2.jpg" alt="">
</body>
</html>

在這里使用了路徑符號./,./代表了目前所在的目錄(D:/node復(fù)盤/03)。

成功引入:

path路徑模塊

什么是path路徑模塊

path 模塊是 Node.js 官方提供的、用來處理路徑的模塊。它提供了一系列的方法和屬性,用來滿足用戶對路徑的處理需求。

獲取路徑名path.dirname()

返回 path 的目錄名。 尾部的目錄分隔符將被忽略。語法格式:

path.dirname(path)

代碼示例:

const path = require('path')
console.log(path.dirname(`D:/node/02/hello.js`));  // D:/node/02

這個方法打印出了目錄名D:/node/02

路徑拼接path.join()

使用 path.join() 方法,可以把多個路徑片段拼接為完整的路徑字符串,語法格式如下:

path.join([...paths])

參數(shù)解讀:

  1. …paths < string > 路徑片段的序列
  2. 返回值: < string >

代碼示例:

const path = require('path')
//   注意: ../會抵消前面的路徑
const pathStr = path.join('/a','/b/c','../','./c','/d')
console.log(pathStr);  //   \a\b\c\d

首先要引入path模塊,node中引入模塊使用內(nèi)置的方法require(),如上例中寫多個字符串,最后打印出來了\a\b\c\d,就是join的拼接功能,但是在這里要注意一點:../會抵消前面的路徑,比如在案例中../抵消了/c

獲取路徑中文件名path.basename()

使用 path.basename() 方法,可以獲取路徑中的最后一部分,常通過該方法獲取路徑中的文件名,語法格式如下:

path.basename(path[, ext])

參數(shù)解讀:

  • path: 文件路徑
  • ext: 文件擴展名

代碼示例:

const path = require('path')
// 定義文件的存放路徑
const fpath = '/a/b/c/index.html'
const fullName = path.basename(fpath)
console.log(fullName) // index.html
const nameWithoutExt = path.basename(fpath, '.html')
console.log(nameWithoutExt) // index

當(dāng)沒有傳入第二個參數(shù)的時候,返回的將是路徑的最后部分,所以返回了index.html,當(dāng)?shù)诙€參數(shù)傳入時,將會在第一種情況的基礎(chǔ)下裁剪掉第二個參數(shù)值,所以返回了index

獲取路徑中文件擴展名path.extname()

使用 path.extname() 方法,返回路徑中文件的后綴名,即路徑中最后一個'.'之后的部分。如果一個路徑中并不包含'.'或該路徑只包含一個'.' 且這個'.'為路徑的第一個字符,則此命令返回空字符串。語法格式如下:

path.extname(path)

參數(shù)path:傳入的路徑

代碼示例:

const path = require('path')
const fpath = '/a/b/c/index.html'
const fext = path.extname(fpath)
console.log(fext) // .html

這個方法與上邊的方法不同的在于提取了后綴名!

解析為絕對路徑path.resolve()

path.resolve() 該方法將一些的 路徑/路徑段 解析為絕對路徑,語法格式如下:

path.resolve( [from…],to ) 注 :將參數(shù)to位置的字符解析到一個絕對路徑里,[from … ]為選填項,路徑源;

參數(shù)解讀:

  1. from : 源路徑
  2. to : 將被解析到絕對路徑的字符串

代碼示例:

const path = require('path)
path.resolve('/foo/bar', './baz')   // returns '/foo/bar/baz'
path.resolve('/foo/bar', 'baz')   // returns '/foo/bar/baz'
path.resolve('/foo/bar', '/baz')   // returns '/baz'
path.resolve('/foo/bar', '../baz')   // returns '/foo/baz'
path.resolve('home','/foo/bar', '../baz')   // returns '/foo/baz'
path.resolve('home','./foo/bar', '../baz')   // returns '/home/foo/baz'
path.resolve('home','foo/bar', '../baz')   // returns '/home/foo/baz'
path.resolve('home', 'foo', 'build','aaaa','aadada','../../..', 'asset') //return '/home/foo/asset'

從后向前,若字符以 / 開頭,不會拼接到前面的路徑;若以../開頭,拼接前面的路徑,且不含最后一節(jié)路徑;若連續(xù)出現(xiàn)多個../../..或者../..則忽略前方n(這個n代表的是出現(xiàn)了幾個..)個..路徑名進(jìn)行拼接;若以./開頭 或者沒有符號 則拼接前面路徑;

返回相對路徑path.relative(from, to)

path.relative() 方法根據(jù)當(dāng)前工作目錄返回 from 到 to 的相對路徑。 如果 from 和 to 各自解析到相同的路徑(分別調(diào)用 path.resolve() 之后),則返回零長度的字符串。

如果將零長度的字符串傳入 from 或 to,則使用當(dāng)前工作目錄代替該零長度的字符串。

代碼示例:

const path = require('path')
path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb');
// 返回: '../../impl/bbb'

該代碼表達(dá)的是對于from參數(shù)來說,to參數(shù)的位置是在哪里,通過解析后得出../../impl/bbb

小結(jié)

node的內(nèi)置模塊中path模塊的實戰(zhàn)操作在于當(dāng)你需要獲取文件的名稱時候可以達(dá)到靈活使用的目的,一般情況下我們只需要文章的前四種方法,最后兩種方法是對path模塊的一個小拔高

到此這篇關(guān)于Node.js常用三大模塊之path模塊的文章就介紹到這了,更多相關(guān)Node.js path模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 實例詳解Node.js 函數(shù)

    實例詳解Node.js 函數(shù)

    這篇文章主要介紹了Node.js 函數(shù) ,本文通過實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2018-06-06
  • nodejs實現(xiàn)的http、https 請求封裝操作示例

    nodejs實現(xiàn)的http、https 請求封裝操作示例

    這篇文章主要介紹了nodejs實現(xiàn)的http、https 請求封裝操作,結(jié)合實例形式分析了node.js針對http、https 請求的封裝與使用相關(guān)操作技巧,需要的朋友可以參考下
    2020-02-02
  • 解決npm管理員身份install時出現(xiàn)權(quán)限的問題

    解決npm管理員身份install時出現(xiàn)權(quán)限的問題

    下面小編就為大家分享一篇解決npm管理員身份install時出現(xiàn)權(quán)限的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • nodejs 實現(xiàn)MQTT協(xié)議的服務(wù)器端和客戶端的雙向交互的過程

    nodejs 實現(xiàn)MQTT協(xié)議的服務(wù)器端和客戶端的雙向交互的過程

    這篇文章主要介紹了nodejs 實現(xiàn)MQTT協(xié)議的服務(wù)器端和客戶端的雙向交互的過程,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-11-11
  • nodejs入門教程一:概念與用法簡介

    nodejs入門教程一:概念與用法簡介

    這篇文章主要介紹了nodejs入門教程之概念與用法,結(jié)合實例形式分析了nodejs基本概念、功能、命令與相關(guān)使用技巧,需要的朋友可以參考下
    2017-04-04
  • Nodejs學(xué)習(xí)筆記之Global Objects全局對象

    Nodejs學(xué)習(xí)筆記之Global Objects全局對象

    本文是NodeJS學(xué)習(xí)筆記系列文章的第二篇,從這篇開始我們就根據(jù)官方文檔來逐個學(xué)習(xí)下NodeJS的各個模塊,首先我們來學(xué)習(xí)下Global
    2015-01-01
  • node.js適合游戲后臺開發(fā)嗎?

    node.js適合游戲后臺開發(fā)嗎?

    這篇文章主要介紹了node.js適合游戲后臺開發(fā)嗎?node.js是不是能代替C++開發(fā)游戲后臺呢?看完本文我想你會有一定的了解了,需要的朋友可以參考下
    2014-09-09
  • nodejs socket實現(xiàn)的服務(wù)端和客戶端功能示例

    nodejs socket實現(xiàn)的服務(wù)端和客戶端功能示例

    這篇文章主要介紹了nodejs socket實現(xiàn)的服務(wù)端和客戶端功能,結(jié)合具體實例形式分析了nodejs基于socket通信實現(xiàn)的服務(wù)端與客戶端功能相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • Node.js API詳解之 util模塊用法實例分析

    Node.js API詳解之 util模塊用法實例分析

    這篇文章主要介紹了Node.js API詳解之 util模塊用法,結(jié)合實例形式分析了node.js API中util模塊基本功能與相關(guān)函數(shù)使用技巧,需要的朋友可以參考下
    2020-05-05
  • 淺談Node新版本13.2.0正式支持ES Modules特性

    淺談Node新版本13.2.0正式支持ES Modules特性

    這篇文章主要介紹了淺談Node新版本13.2.0正式支持ES Modules特性,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11

最新評論