亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Node.js中fs模塊實現(xiàn)配置文件的讀寫操作

 更新時間:2024年04月28日 10:49:30   作者:丶虎子  
在Node.js中, fs模塊提供了對文件系統(tǒng)的訪問功能,我們可以利用它來實現(xiàn)配置文件的讀取和寫入操作,這篇文章主要介紹了Node.js中fs模塊實現(xiàn)配置文件的讀寫,需要的朋友可以參考下

Node.js中fs模塊實現(xiàn)配置文件的讀寫 

在Node.js中, fs模塊提供了對文件系統(tǒng)的訪問功能,我們可以利用它來實現(xiàn)配置文件的讀取和寫入操作。正好用到,就記錄一下。

準備工作

確保你的項目目錄已經(jīng)安裝了做了npmpnpmyarn等node相關(guān)初始化,存在node_modules文件夾,這樣就可以使用fs

const fs = require('fs');

接下來就是定義路徑,我是用到年月來定義路徑,并放在當(dāng)前路徑的storeConfigs下:

const path = require('path');
const date = getDate();
// 文件夾路徑 ./storeConfigs/${date.year}/${date.month}
const folderPath = path.resolve(__dirname, 'storeConfigs', `${date.year}`, `${date.month}`);
// 用date.day來定義文件名  ./storeConfigs/${date.year}/${date.month}/${date.day}
const aFilePath = path.resolve(folderPath, `${date.day}`);
// 獲取當(dāng)前日期
function getDate() {
    const currentDate = new Date();
    const year = currentDate.getFullYear();
    const month = currentDate.getMonth() + 1;
    const day = currentDate.getDate();
    return { year: year, month: month, day: day };
}

讀取配置

要實現(xiàn)讀取的邏輯,首先要做下文件夾排空報錯處理,!fs.existsSync(folderPath)假如路徑不存在,那代表文件也不存在,mkdirp(folderPath);根據(jù)路徑創(chuàng)建文件夾,再 fs.writeFileSync(aFilePath, '{}');創(chuàng)建文件。假如存在路徑,!fs.existsSync(aFilePath)文件不存在,創(chuàng)建文件:

function CheckPathOrFiles() {
    if (!fs.existsSync(folderPath)) {
            mkdirp(folderPath);
            fs.writeFileSync(aFilePath, '{}');
        } else {
            if (!fs.existsSync(aFilePath)) {
                console.log(`創(chuàng)建文件:${aFilePath}`);
                fs.writeFileSync(aFilePath, '{}');
            }
        }
}
function mkdirp(dir) {
    if (fs.existsSync(dir)) { return true; }
    const dirname = path.dirname(dir);
    mkdirp(dirname); // 遞歸創(chuàng)建父目錄
    fs.mkdirSync(dir);
}

在上面的代碼中,我重構(gòu)了mkdirp函數(shù)來創(chuàng)建空文件夾,而沒有使用fs自帶的mkdirSync(),使用后報錯
Error: ENOENT: no such file or directory.Object.fs.mkdirSync,大致原因就是node.js低版本的漏洞吧,你也可以嘗試直接使用下面代碼代替mkdirp(folderPath);試試。

fs.mkdirSync(folderPath, { recursive: true }); // 遞歸創(chuàng)建路徑

然后編寫讀取函數(shù)getHostConfigs(),通過fs.readFileSync(aFilePath, 'utf8')獲取到aFilePath該文件路徑下的文件:

function getHostConfigs() {
    console.log('進入讀取環(huán)節(jié)..')
    try {
        CheckPathOrFiles()
        // 讀取文件配置
        const data = fs.readFileSync(aFilePath, 'utf8');
        const hostConfigs = JSON.parse(data);
        console.log('配置校驗成功?。?);
        return hostConfigs;
    } catch (error) {
        console.error('讀取失敗:', error);
        return null;
    }
}

接下來是配置的更新寫入,這部分可以根據(jù)自己需求來,比較重要的是let hostConfigs = getHostConfigs();讀取配置,然后在這個函數(shù)里利用fs.writeFile(aFilePath,data)實現(xiàn)寫入邏輯:

function updateHostConfigs(config) {
    let hostConfigs = getHostConfigs();
    if (!hostConfigs) {
        hostConfigs = {};
    }
    if (config.host) {
        hostConfigs[config.host] = config;
    }
    // 寫入配置
    fs.writeFile(aFilePath, JSON.stringify(hostConfigs), (err) => {
        if (err) {
            console.error('寫入出錯:', err);
        } else {
            console.log('配置寫入成功..');
        }
    });
    console.log(hostConfigs);
}

最后導(dǎo)出模塊,方便其他腳本使用:

module.exports = {
    updateHostConfigs,
    getHostConfigs
};

到此這篇關(guān)于Node.js中fs模塊實現(xiàn)配置文件的讀寫的文章就介紹到這了,更多相關(guān)Node.js fs模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Node.js 學(xué)習(xí)筆記之簡介、安裝及配置

    Node.js 學(xué)習(xí)筆記之簡介、安裝及配置

    本文是Node.js學(xué)習(xí)筆記系列文章的第一篇,主要給大家講解的是在Windows和Linux上安裝Node.js的方法。軟件安裝版本以0.12.0為例。希望大家能夠喜歡。
    2015-03-03
  • 用node和express連接mysql實現(xiàn)登錄注冊的實現(xiàn)代碼

    用node和express連接mysql實現(xiàn)登錄注冊的實現(xiàn)代碼

    本篇文章主要介紹了用node和express連接mysql實現(xiàn)登錄注冊的實現(xiàn)代碼,具有一定的參考價值,有興趣的可以了解一下
    2017-07-07
  • 學(xué)習(xí)使用ExpressJS 4.0中的新Router的用法

    學(xué)習(xí)使用ExpressJS 4.0中的新Router的用法

    ExpressJS 4.0中提出了新的路由Router,提供了路由應(yīng)有的API,本文詳細的介紹了ExpressJS 4.0中的新Router的用法,非常具有實用價值,需要的朋友可以參考下
    2018-11-11
  • node.js中的fs.readSync方法使用說明

    node.js中的fs.readSync方法使用說明

    這篇文章主要介紹了node.js中的fs.readSync方法使用說明,本文介紹了fs.readSync方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 深入理解Commonjs規(guī)范及Node模塊實現(xiàn)

    深入理解Commonjs規(guī)范及Node模塊實現(xiàn)

    本篇文章主要介紹了深入理解Commonjs規(guī)范及Node模塊實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • windows離線環(huán)境安裝node-sass全過程

    windows離線環(huán)境安裝node-sass全過程

    文章介紹了如何在Windows系統(tǒng)上安裝和配置node-sass,并提供了一個詳細的步驟指南,首先,通過命令行查看支持版本;然后,下載對應(yīng)版本的node-sass安裝包;接著,在npm配置文件中增加SASS_BINARY_PATH路徑配置;最后,執(zhí)行npmi命令完成安裝
    2024-12-12
  • 利用node+koa+axios實現(xiàn)圖片上傳和回顯功能

    利用node+koa+axios實現(xiàn)圖片上傳和回顯功能

    這篇文章為大家詳細介紹了如何利用node+koa+axios實現(xiàn)圖片上傳和回顯功能,主要實現(xiàn)簡單的圖片上傳和靜態(tài)內(nèi)容的訪問,感興趣的可以了解一下
    2022-05-05
  • node.js(expree.js?)模擬手機驗證碼登錄功能

    node.js(expree.js?)模擬手機驗證碼登錄功能

    這篇文章主要介紹了node.js(expree.js?)模擬手機驗證碼功能及登錄功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-01-01
  • node.js環(huán)境搭建圖文詳解

    node.js環(huán)境搭建圖文詳解

    Node.js 是一個讓 JavaScript 運行在服務(wù)端的開發(fā)平臺,小編在空閑時間就研究nodejs的相關(guān)知識,下面是本文給大家?guī)淼膎ode.js環(huán)境搭建教程圖解,感興趣的朋友跟隨小編一起學(xué)習(xí)吧
    2018-09-09
  • Node.js的HTTP模塊、URL模塊與supervisor工具介紹

    Node.js的HTTP模塊、URL模塊與supervisor工具介紹

    這篇文章介紹了Node.js的HTTP模塊、URL模塊與supervisor工具,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06

最新評論