最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js?中常用內(nèi)置模塊(path?路徑模塊)

 更新時間:2022年09月08日 15:39:37   作者:海底燒烤店ai  
這篇文章主要介紹了Node.js?中常用內(nèi)置模塊(path?路徑模塊),文章圍繞主題展開詳細的相關介紹,具有一定的參考價值,感興趣的朋友可以參考一下

前言

進行服務端開發(fā),少不了對各種路徑的處理,之前我們是簡單粗暴的使用字符串的方法來對路徑進行拼接或截取等操作。

Node.js 官方為我們提供了一個專門用來處理路徑的模塊:path模塊,這個模塊提供了一系列的方法和屬性,用來滿足用戶對路徑的處理需求。

路徑拼接:join方法

path模塊中有一個join方法,能夠非常智能的進行路徑拼接:

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

const path = require("path");
// 拼接/a和/b
const pathStr = path.join("/a", "/b");
console.log(pathStr); // '\a\b'

join方法會識別當前操作系統(tǒng),判斷應當使用正斜杠(/)還是反斜杠(\

因為我使用的是Windows,所以生成的是“\a\b”(反斜杠),如果在Linux系統(tǒng)下則會生成“/a/b”(正斜杠),這就是join相比簡單的字符串拼接'/a'+'/b')更智能的一點

我們在寫路徑時,習慣于使用正斜杠(/),但在Windows系統(tǒng)中文件路徑默認使用的是反斜杠(\):

但我們在Windows系統(tǒng)中訪問路徑時,正反斜杠都可以正常訪問

但Linux系統(tǒng)中文件路徑只能使用正斜杠?。?!

join方法另一個智能的地方在于:它會會識別并匹配相對路徑的寫法

const path = require("path");

// 注意:join方法會識別并匹配相對路徑的寫法
// 如下../c會替換掉/b(相當于找上一級的c而不是/b),所以最后拼接成的路徑為\a\c
const pathStr1 = path.join("/a", "/b", "../c");
console.log(pathStr1); // '\a\c'

// const pathStr1 = path.join("/a", "/b", "../../c");
// console.log(pathStr1); // '\c'

// const pathStr1 = path.join("/a", "/b", "./c");
// console.log(pathStr1); // '\a\b\c'

// const pathStr1 = path.join("/a", "/b", "c/d");
// console.log(pathStr1); // '\a\b\c\d'

在一些目錄結(jié)構復雜的項目,使用相對路徑可能會不盡人意,所以我們也經(jīng)常使用絕對路徑來避免一些不必要的麻煩,但我們?nèi)绾沃酪粋€目錄的絕對路徑呢?

Node.js中有一個全局變量:__dirname,它代表了當前目錄的絕對路徑

通過絕對路徑訪問文件:

const path = require("path");
const fs = require("fs");

fs.readFile(path.join(__dirname, "/static/index.txt"), "utf-8", (err, data) => {
    if (err) {
        return console.log("讀取文件出錯!", err);
    }
    console.log("文件內(nèi)容", data);
});

獲取文件名:basename方法

使用path.basename()方法,可以從一個文件路徑中,獲取到文件的名稱部分。

basename方法有兩個參數(shù):

  • 第一個參數(shù)必傳,表示文件的路徑第
  • 二個參數(shù)可選,表示文件的后綴名(也叫擴展名)

不傳第二個參數(shù)可獲取文件完整名(包含后綴):

const path = require("path");

// 一個用于測試的文件路徑
const fpath = "./static/index.txt";

// 獲取完整文件名(帶擴展名)
const fullName1 = path.basename(path.join(__dirname, fpath));
console.log(fullName1); // index.txt

傳第二個參數(shù)時,獲取的是不含后綴的文件名:

const path = require("path");

// 一個用于測試的文件路徑
const fpath = "./static/index.txt";

// 指定basename的第二個參數(shù)為文件的擴展名,來獲取不帶擴展名的文件名
const fullName2 = path.basename(fpath, ".txt");
console.log(fullName2); // index

注意:如果第二個參數(shù)填的后綴與文件實際后綴不符合,則獲取到的依舊是文件的完整名(包含后綴)

const path = require("path");

// 一個用于測試的文件路徑
const fpath = "./static/index.txt";

const fullName2 = path.basename(fpath, ".js");
console.log(fullName2); // index.txt

獲取文件擴展名:extname方法

extname方法可用來獲取文件的擴展名:

const path = require("path");

// 一個用于測試的文件路徑
const fpath = "./static/index.txt";

// 獲取文件擴展名
const fullName1 = path.extname(path.join(__dirname, fpath));
console.log(fullName1); // .txt

結(jié)語

這一節(jié)比較簡單,主要介紹了path模塊的幾個常用方法,到此這篇關于Node.js 中常用內(nèi)置模塊(path 路徑模塊)的文章就介紹到這了,更多相關Node.js path 模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • npm?install?-g?@vue/cli常見問題解決匯總

    npm?install?-g?@vue/cli常見問題解決匯總

    這篇文章主要給大家介紹了關于npm?install?-g?@vue/cli常見問題解決的相關資料,文中通過實例代碼將解決的方式介紹的非常詳細,對遇到這個問題的朋友具有一定的參考學習價值,需要的朋友可以參考下
    2022-08-08
  • 詳解使用PM2管理nodejs進程

    詳解使用PM2管理nodejs進程

    本篇文章主要介紹了詳解使用PM2管理nodejs進程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • 淺談express.js框架中間件(middleware)

    淺談express.js框架中間件(middleware)

    這篇文章主要介紹了淺談express.js框架中間件(middleware),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • nodejs multer實現(xiàn)文件上傳與下載

    nodejs multer實現(xiàn)文件上傳與下載

    這篇文章主要為大家詳細介紹了nodejs multer實現(xiàn)文件上傳與下載的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 手把手教你把nodejs部署到linux上跑出hello world

    手把手教你把nodejs部署到linux上跑出hello world

    本篇文章主要介紹了手把手教你把nodejs部署到linux上跑出hello world,非常具有實用價值,需要的朋友可以參考下
    2017-06-06
  • Node.js實現(xiàn)爬取網(wǎng)站圖片的示例代碼

    Node.js實現(xiàn)爬取網(wǎng)站圖片的示例代碼

    本文將利用Node.js開發(fā)一個小示例—爬取某圖片網(wǎng)站的圖片,文中涉及的知識點有https模塊、cheerio模塊、fs模塊和閉包,感興趣的可以了解一下
    2022-04-04
  • node靜態(tài)服務器實現(xiàn)靜態(tài)讀取文件或文件夾

    node靜態(tài)服務器實現(xiàn)靜態(tài)讀取文件或文件夾

    這篇文章主要介紹了node靜態(tài)服務器實現(xiàn)靜態(tài)讀取文件或文件夾,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • 使用Typescript和ES模塊發(fā)布Node模塊的方法

    使用Typescript和ES模塊發(fā)布Node模塊的方法

    這篇文章主要介紹了使用Typescript和ES模塊發(fā)布Node模塊的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • Yapi安裝部署詳細圖文教程

    Yapi安裝部署詳細圖文教程

    YApi 是一個可本地部署的、打通前后端及QA的、可視化的接口管理平臺,下面這篇文章主要給大家介紹了關于Yapi安裝部署的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • 在Node.js中實現(xiàn)文件復制的方法和實例

    在Node.js中實現(xiàn)文件復制的方法和實例

    這篇文章主要介紹了在Node.js中實現(xiàn)文件復制的方法和實例,使用FS模塊實現(xiàn),需要的朋友可以參考下
    2014-06-06

最新評論

双牌县| 兴国县| 仙居县| 龙江县| 达州市| 达州市| 商都县| 宾阳县| 平度市| 呼伦贝尔市| 邢台市| 乐昌市| 梁山县| 通河县| 瑞金市| 汝南县| 察隅县| 墨江| 阿坝县| 霸州市| 万载县| 固镇县| 通城县| 宁陵县| 子洲县| 洮南市| 育儿| 夏河县| 天气| 定结县| 岗巴县| 惠安县| 应用必备| 九龙城区| 汶川县| 榆社县| 卓尼县| 自贡市| 环江| 高邮市| 绥阳县|