站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        淺析node的path路徑模塊

        path 模塊是 nodejs 中用于處理文件/目錄路徑的一個內(nèi)置模塊,可以看作是一個工具箱,提供諸多方法供我們使用,當(dāng)然都是和路徑處理有關(guān)的。同時在前端開發(fā)中 path 模塊出現(xiàn)的頻率也是比較高的,比如配置 webpack 的時候等。本文就來聊聊node的path路徑模塊。

        淺析node的path路徑模塊

        node的path模塊

        前言:通過這篇文章你會了解node的path內(nèi)置模塊的一些API
        如果需要的話可到node官網(wǎng)查看。當(dāng)然實踐大于理論
        所以我準(zhǔn)備了一個案例,用于練手

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

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

        2.path模塊的API

        2.1 path.join()

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

        語法格式為
        淺析node的path路徑模塊

        …paths(string) 路徑片段的序列 ,就是你需要拼接的所有路徑系列。【相關(guān)教程推薦:nodejs視頻教程、編程教學(xué)】

        需要注意的是這個返回的值為string

        //引入path模塊 const path=require("path") //書寫要拼接的路徑 const pathStr=path.join('/a','/b/c','../','./d','e')  console.log(pathStr)
        登錄后復(fù)制

        淺析node的path路徑模塊

        2.2 path.basename()

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

        語法格式
        淺析node的path路徑模塊

        • path 必選參數(shù),表示一個路徑的字符串
        • 可選參數(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)
        登錄后復(fù)制

        淺析node的path路徑模塊

        2.3 path.extname()

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

        格式為
        淺析node的path路徑模塊

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

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

        const path=require("path")  const fpath='./a/b/c/d/index.html'  const ftext =path.extname(fpath)  console.log(ftext)
        登錄后復(fù)制

        淺析node的path路徑模塊

        3.時鐘案例實踐

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

        源代碼
        點擊右鍵查看源代碼

        3.1實現(xiàn)步驟

        1.創(chuàng)建兩個正則表達(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>[sS]*</style>/  const scriptruler=/<script>[sS]*</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) })
        登錄后復(fù)制

        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")     }) }
        登錄后復(fù)制

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

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

        淺析node的path路徑模塊

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 鲸鱼传媒绿头鱼实验室之炮机测评日韩精品一级毛 | www.日韩精品| 久久精品欧美日韩精品| 久久精品二区| 亚洲国产精品免费视频| 国产精品 猎奇 另类视频| 国精品午夜福利视频不卡 | 精品亚洲aⅴ在线观看| 中文字幕亚洲精品资源网| 91视频精品全国免费观看| 国内精品免费久久影院| 国产精品视频免费| 99久久精品影院老鸭窝| 人妻少妇精品中文字幕AV| 日韩精品一二三四区| 国产玖玖玖九九精品视频| 四虎永久在线精品国产免费| 凹凸69堂国产成人精品视频| 国产乱码精品一品二品| 青草国产精品久久久久久| 亚洲欧美精品AAAAAA片| 伊人久久大香线蕉精品不卡| 久久久久无码国产精品不卡| 国产欧美日本精品| 国产精品美女久久久久AV福利 | 亚洲国产精品久久久久| 国产成人精品综合网站| 国产精品伦一区二区三级视频| 日韩精品无码一区二区中文字幕 | 国产小呦泬泬99精品| 国产精品内射视频免费| 国产在线观看一区精品| 国产亚洲精品精品国产亚洲综合| 91嫩草亚洲精品| 国产精品成人小电影在线观看 | 国产精品久久久久久搜索| 国产成人精品电影在线观看 | 99re这里只有精品6| 久久精品国产99久久久| 久久精品aⅴ无码中文字字幕重口 久久精品a亚洲国产v高清不卡 | 少妇人妻偷人精品无码视频|