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

Nodejs中fs文件系統(tǒng)模塊的路徑動態(tài)拼接的問題和解決方案

 更新時(shí)間:2024年03月19日 10:07:50   作者:扶蘇1002  
在使用fs模塊操作文件時(shí),如果提供的操作路徑是以./或../開頭的相對路徑時(shí),很容易出現(xiàn)路徑動態(tài)拼接錯誤的問題,所以本文給大家介紹了Nodejs中fs文件系統(tǒng)模塊的路徑動態(tài)拼接的問題和解決方案,需要的朋友可以參考下

一、問題和解決方案

在使用fs模塊操作文件時(shí),如果提供的操作路徑是以./或../開頭的相對路徑時(shí),很容易出現(xiàn)路徑動態(tài)拼接錯誤的問題

原因: 代碼在運(yùn)行的時(shí)候,會以執(zhí)行 node 命令運(yùn)行的目錄,動態(tài)拼接出被操作文件的完整路徑,也就是說這里的./../參考點(diǎn)是node 命令運(yùn)行的目錄,而不是文件的目錄

解決方案:

  • 在使用fs模塊操作文件時(shí),直接提供完整的路徑,不要提供./或 ../開頭的相對路徑,從而防止路徑動態(tài)拼接的問題
  • 使用內(nèi)置的__dirname當(dāng)前文件所處的目錄)配合path.join()動態(tài)獲取文件路徑

二、認(rèn)識__dirname

__dirname 表示當(dāng)前文件所處的目錄
實(shí)例

文件層級結(jié)構(gòu)

image.png

index.js中

// __dirname 表示當(dāng)前文件所處的目錄
console.log(__dirname);  //D:\myProject\nodejs\nodejs\文件系統(tǒng)模塊\__dirname

image.png

從打印結(jié)果我們可以看出

__dirname 表示當(dāng)前文件所處的目錄

三、path路徑模塊

3.1. 什么是path 路徑模塊

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

  • path.join()方法,用來將多個路徑片段拼接成一個完整的路徑字符串
  • path.basename()方法,用來從路徑字符串中,將文件名解析出來

如果要在JavaScript代碼中,使用path 模塊來處理路徑,則需要使用如下的方式先導(dǎo)入它

const path = require('path')

3.2. path.join()

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

注意: path.join() ../代表抵消一層路徑

// 導(dǎo)入path模塊
const path = require("path");

const pathStr = path.join("/a", "/b/c", "../", "./d", "e");
// "../"抵消了/c這一層路徑
console.log(pathStr); //\a\b\d\e

四、path路徑模塊配合__dirname動態(tài)獲取文件路徑

實(shí)例

文件層級結(jié)構(gòu)

image.png

成績.txt

image.png

index.js

// 導(dǎo)入文件系統(tǒng)模塊
const fs = require("fs");
// 導(dǎo)入path模塊
const path = require("path");
// __dirname當(dāng)前文件所處的目錄
fs.readFile(path.join(__dirname, "/成績.txt"), "utf8", function (err, dataStr) {
  if (err) return console.log(err.message); //讀取失敗
  console.log(dataStr); //讀取成功
});

image.png

以上就是Nodejs中fs文件系統(tǒng)模塊的路徑動態(tài)拼接的問題和解決方案的詳細(xì)內(nèi)容,更多關(guān)于Nodejs fs路徑動態(tài)拼接的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Node.js中Sequelize?hook的使用方法小結(jié)

    Node.js中Sequelize?hook的使用方法小結(jié)

    Sequelize?提供了多個?hook,用于在執(zhí)行數(shù)據(jù)庫操作時(shí)執(zhí)行一些自定義邏輯,本文為大家整理了一些常用的?Sequelize?hook?列表及其作用,希望對大家有所幫助
    2024-02-02
  • axios基本用法教程示例詳解

    axios基本用法教程示例詳解

    這篇文章主要為大家介紹了axios基本用法示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • 利用Node.js批量抓取高清妹子圖片實(shí)例教程

    利用Node.js批量抓取高清妹子圖片實(shí)例教程

    這篇文章主要給大家介紹了關(guān)于利用Node.js批量抓取高清妹子圖片的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們可以直接將代碼復(fù)制進(jìn)行使用,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • node.js中的url.format方法使用說明

    node.js中的url.format方法使用說明

    這篇文章主要介紹了node.js中的url.format方法使用說明,本文介紹了url.format的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 使用 Node.js 模擬滑動拼圖驗(yàn)證碼操作的示例代碼

    使用 Node.js 模擬滑動拼圖驗(yàn)證碼操作的示例代碼

    本篇文章主要介紹了使用 Node.js 模擬滑動驗(yàn)證碼操作的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Node.js圖片處理庫sharp的使用

    Node.js圖片處理庫sharp的使用

    這篇文章主要介紹了Node.js圖片處理庫sharp的使用,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Nodejs Express 通過log4js寫日志到Logstash(ELK)

    Nodejs Express 通過log4js寫日志到Logstash(ELK)

    這篇文章主要介紹了Nodejs Express 通過log4js寫日志到Logstash(ELK),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • 安裝Node.js并啟動本地服務(wù)的操作教程

    安裝Node.js并啟動本地服務(wù)的操作教程

    今天小編就為大家分享一篇安裝Node.js并啟動本地服務(wù)的操作教程,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • nodejs實(shí)現(xiàn)郵件發(fā)送服務(wù)實(shí)例分享

    nodejs實(shí)現(xiàn)郵件發(fā)送服務(wù)實(shí)例分享

    本文給大家講解的是簡單的使用nodejs搭建郵件發(fā)送服務(wù)的一個實(shí)例,非常的好用,有需要的小伙伴可以參考下
    2017-03-03
  • 使用puppeteer爬取網(wǎng)站并抓出404無效鏈接

    使用puppeteer爬取網(wǎng)站并抓出404無效鏈接

    自動化技術(shù)可以幫助我們做自動化測試,本篇文章主要介紹了使用puppeteer爬取網(wǎng)站并抓出404無效鏈接,可以檢查出無效鏈接,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12

最新評論