溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

node中path路徑模塊的API有哪些

發(fā)布時(shí)間:2022-05-26 13:58:46 來源:億速云 閱讀:181 作者:iii 欄目:web開發(fā)

本文小編為大家詳細(xì)介紹“node中path路徑模塊的API有哪些”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“node中path路徑模塊的API有哪些”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。

node中path路徑模塊的API有哪些

1.path路徑模塊初認(rèn)識(shí)

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

2.path模塊的API

2.1 path.join()

path.join() 方法,用來將多個(gè)路徑片段拼接成一個(gè)完整的路徑字符串

語(yǔ)法格式為

node中path路徑模塊的API有哪些

…paths(string) 路徑片段的序列 ,就是你需要拼接的所有路徑系列

需要注意的是這個(gè)返回的值為string

//引入path模塊
const path=require("path")
//書寫要拼接的路徑
const pathStr=path.join('/a','/b/c','../','./d','e')

console.log(pathStr)

node中path路徑模塊的API有哪些

2.2 path.basename()

使用 path.basename() 方法,可以獲取路徑中的最后一部分,經(jīng)常通過這個(gè)方法獲取路徑中的文件名

語(yǔ)法格式

node中path路徑模塊的API有哪些

  • path 必選參數(shù),表示一個(gè)路徑的字符串

  • 可選參數(shù),表示文件擴(kuò)展名

  • 表示路徑中的最后一部分

const path=require("path")

const  fpath='./a/b/c/index.html'

var fullname=path.basename(fpath)

console.log(fullname)
//獲取指定后綴的文件名
const namepath=path.basename(fpath,'.html')

console.log(namepath)

node中path路徑模塊的API有哪些

2.3 path.extname()

path.extname()用于獲取路徑中的文件擴(kuò)展名

格式為

node中path路徑模塊的API有哪些

  • path 必選參數(shù),表示一個(gè)路徑的字符串

  • 返回: 返回得到的擴(kuò)展名字符串

const path=require("path")

const fpath='./a/b/c/d/index.html'

const ftext =path.extname(fpath)

console.log(ftext)

node中path路徑模塊的API有哪些

3.時(shí)鐘案例實(shí)踐

將所提供的代碼(一個(gè)文件同時(shí)擁有html,css,js)進(jìn)行拆分
拆分成三個(gè)文件分別為index.html index.css index.js并將其存放到一個(gè)準(zhǔn)備好的文件中

源代碼:http://127.0.0.1:5500/node/day1/static/index.html

3.1實(shí)現(xiàn)步驟

1.創(chuàng)建兩個(gè)正則表達(dá)式,分別用來匹配 <style><script> 標(biāo)簽
2. 使用 fs 模塊,讀取需要被處理的 HTML 文件
3. 自定義 resolveCSS 方法,來寫入 index.css 樣式文件
4. 自定義 resolveJS 方法,來寫入 index.js 腳本文件
5.自定義 resolveHTML 方法,來寫入 index.html 文件

3.1.1步驟1 - 導(dǎo)入需要的模塊并創(chuàng)建正則表達(dá)式
const path=require('path')
const fs=require('fs')

const regStyle=/<style>[\s\S]*<\/style>/

const scriptruler=/<script>[\s\S]*<\/script>/
//需要讀取的文件
fs.readFile(path.join(__dirname,'/static/index.html'),'utf-8',function(err,dateStr){
    if(err){
        return console.log("讀取失敗")
    }
   resolveCSS(dateStr)
   resolveHTML(dateStr)
   resolveJS (dateStr)
})
3.1.2 自定義 resolveCSS resolveHTML resolveJS 方法
function resolveCSS(htmlStr){
    const r1=regStyle.exec(htmlStr)
    const newcss=r1[0].replace('<style>','').replace('</style>','')
    //將匹配的css寫入到指定的index.css文件中
    fs.writeFile(path.join(__dirname,'/static/index.css'),newcss,function(err){
        if(err) return console.log("導(dǎo)入失敗"+err.message)
        console.log("ojbk")
    })
}
function resolveJS(htmlStr){
    const r2=scriptruler.exec(htmlStr)
    const newcss=r2[0].replace('<script>','').replace('</script>','')
    //將匹配的css寫入到指定的index.js文件中
    fs.writeFile(path.join(__dirname,'/static/index.js'),newcss,function(err){
        if(err) return console.log("導(dǎo)入失敗"+err.message)
        console.log("ojbk")
    })
}
function  resolveHTML(htmlStr){
    const newhtml=htmlStr
    .replace(regStyle,'<link rel="stylesheet" href="./index.css">')
    .replace(scriptruler,'<script src="./index.js"></script>')
    //將匹配的css寫入到指定的index.html文件中
    fs.writeFile(path.join(__dirname,'/static/index2.html'),newhtml,function(err){
        if(err) return console.log("導(dǎo)入失敗"+err.message)
        console.log("ojbk")
    })
}

最終的結(jié)果就是在指定的文件中將樣式剝離開

但是那個(gè)最開始的index.html由于是包含全部的代碼,而后
在拆分樣式的時(shí)候存放的位置還是原來的,所以最終index.html的代碼不變

node中path路徑模塊的API有哪些

讀到這里,這篇“node中path路徑模塊的API有哪些”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI