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

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

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

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

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

準(zhǔn)備工作

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

const fs = require('fs');

接下來(lái)就是定義路徑,我是用到年月來(lái)定義路徑,并放在當(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來(lái)定義文件名  ./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ù)來(lái)創(chuàng)建空文件夾,而沒(méi)有使用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(),通過(guò)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;
    }
}

接下來(lái)是配置的更新寫入,這部分可以根據(jù)自己需求來(lái),比較重要的是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)文章

  • Windows系統(tǒng)中安裝nodejs圖文教程

    Windows系統(tǒng)中安裝nodejs圖文教程

    這篇文章主要介紹了Windows系統(tǒng)中安裝nodejs圖文教程,本文分解了安裝中的各個(gè)步驟并給出圖文說(shuō)明,需要的朋友可以參考下
    2015-02-02
  • 如何在Nodejs中使用模塊fs文件系統(tǒng)

    如何在Nodejs中使用模塊fs文件系統(tǒng)

    這篇文章主要介紹了如何在Nodejs中使用模塊fs文件系統(tǒng),對(duì)nodejs感興趣的同學(xué),可以參考下
    2021-05-05
  • nodejs圖片處理工具gm用法小結(jié)

    nodejs圖片處理工具gm用法小結(jié)

    這篇文章主要介紹了nodejs圖片處理工具gm用法小結(jié),詳細(xì)的介紹了gm的使用,還有圖片處理的實(shí)例,非常具有實(shí)用價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • nodeJS刪除文件方法示例

    nodeJS刪除文件方法示例

    這篇文章主要介紹了nodeJS刪除文件方法,結(jié)合實(shí)例形式分析了nodeJS實(shí)現(xiàn)文件與目錄的獲取、遍歷與刪除相關(guān)操作技巧,需要的朋友可以參考下
    2016-12-12
  • Node.js控制臺(tái)彩色輸出的方法與原理實(shí)例詳解

    Node.js控制臺(tái)彩色輸出的方法與原理實(shí)例詳解

    這篇文章主要給大家介紹了關(guān)于Node.js控制臺(tái)彩色輸出的方法與原理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Node.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 利用node 判斷打開的是文件 還是 文件夾的實(shí)例

    利用node 判斷打開的是文件 還是 文件夾的實(shí)例

    今天小編就為大家分享一篇利用node 判斷打開的是文件 還是 文件夾的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • NodeJs安裝npm包一直失敗的解決方法

    NodeJs安裝npm包一直失敗的解決方法

    本篇文章主要介紹了NodeJs安裝npm包一直失敗的解決方法。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-04-04
  • nodejs實(shí)現(xiàn)百度輿情接口應(yīng)用示例

    nodejs實(shí)現(xiàn)百度輿情接口應(yīng)用示例

    這篇文章主要介紹了nodejs實(shí)現(xiàn)百度輿情接口應(yīng)用,結(jié)合實(shí)例形式分析了node.js調(diào)用百度輿情接口的具體使用技巧,需要的朋友可以參考下
    2020-02-02
  • 淺談在node.js進(jìn)入文件目錄的問(wèn)題

    淺談在node.js進(jìn)入文件目錄的問(wèn)題

    今天小編就為大家分享一篇淺談在node.js進(jìn)入文件目錄的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • 垃圾回收器的相關(guān)知識(shí)點(diǎn)總結(jié)

    垃圾回收器的相關(guān)知識(shí)點(diǎn)總結(jié)

    本文是小編在網(wǎng)絡(luò)上整理的關(guān)于垃圾回收器的相關(guān)知識(shí)點(diǎn),很多語(yǔ)言和程序都用的到,有興趣的可以學(xué)習(xí)下。
    2018-05-05

最新評(píng)論

客服| 潼关县| 杭锦后旗| 兴城市| 永昌县| 高青县| 区。| 澄江县| 房产| 永善县| 泸州市| 资兴市| 阜宁县| 西盟| 什邡市| 句容市| 泸西县| 南平市| 瑞金市| 弥勒县| 江西省| 建平县| 安陆市| 连山| 漯河市| 乌鲁木齐市| 巨鹿县| 万宁市| 玉龙| 金乡县| 左贡县| 浦东新区| 金川县| 泾川县| 休宁县| 龙里县| 顺义区| 苏尼特右旗| 社旗县| 郧西县| 清流县|