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

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

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

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

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

準(zhǔn)備工作

確保你的項(xiàng)目目錄已經(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 };
}

讀取配置

要實(shí)現(xiàn)讀取的邏輯,首先要做下文件夾排空?qǐng)?bào)錯(cuò)處理,!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(),使用后報(bào)錯(cuò)
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('進(jìn)入讀取環(huán)節(jié)..')
    try {
        CheckPathOrFiles()
        // 讀取文件配置
        const data = fs.readFileSync(aFilePath, 'utf8');
        const hostConfigs = JSON.parse(data);
        console.log('配置校驗(yàn)成功!!');
        return hostConfigs;
    } catch (error) {
        console.error('讀取失敗:', error);
        return null;
    }
}

接下來是配置的更新寫入,這部分可以根據(jù)自己需求來,比較重要的是let hostConfigs = getHostConfigs();讀取配置,然后在這個(gè)函數(shù)里利用fs.writeFile(aFilePath,data)實(shí)現(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('寫入出錯(cuò):', err);
        } else {
            console.log('配置寫入成功..');
        }
    });
    console.log(hostConfigs);
}

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

module.exports = {
    updateHostConfigs,
    getHostConfigs
};

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    node.js(expree.js?)模擬手機(jī)驗(yàn)證碼登錄功能

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

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

    Node.js 是一個(gè)讓 JavaScript 運(yùn)行在服務(wù)端的開發(fā)平臺(tái),小編在空閑時(shí)間就研究nodejs的相關(guān)知識(shí),下面是本文給大家?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工具,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06

最新評(píng)論