亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Nodejs如何讀寫.env文件?

Nodejs如何讀寫.env文件?

嗶嗶one 2023-11-12 15:27:44
如何讀寫env文件?原始文件:# I am a note ...key1=value1key2=value2   # I am a note ...我需要一個函數setEnv(key, value)。運行setEnv('key1', 'value2'),讓它變成:# I am a note ...key1=value2key2=value2   # I am a note ...我怎樣才能實現它?
查看完整描述

3 回答

?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

讓我們從創建新項目開始。


mkdir folder_name

cd folder_name

npm init

然后在您的項目目錄中安裝“envfile”和“dotenv”。安裝 envfile 的命令是


npm install envfile --save

同樣安裝dotenv


npm install dotenv --save

dotenv 包直接讀取 .env 文件 envfile 包用于根據需要解析和字符串化文件。.env使用您的詳細信息在項目目錄中創建文件。


# I am a note ...

key1=value1


key2=value2

   # I am a note ...

創建一個新文件filename.js


之后,您可以使用以下代碼來獲取和設置環境變量。


const fs = require('fs');

require('dotenv').config()

const {

    parse,

    stringify

} = require('envfile');

const pathToenvFile = '.env';


/**

 * 

 * @param {string} key 

 * //Function to get value from env

 */

function getEnv(key) {

    console.log("Getting value of " + key);

    console.log(process.env[key]);

}

//Calling the function getEnv

getEnv("key1");



/**

 * 

 * @param {string} key 

 * @param {string} value 

 * //Function to set environment variables.

 */

function setEnv(key, value) {

    fs.readFile(pathToenvFile, 'utf8', function (err, data) {

        if (err) {

            return console.log(err);

        }

        var result = parse(data);

        result[key] = value;

        console.log(result);

        fs.writeFile(pathToenvFile, stringify(result), function (err) {

            if (err) {

                return console.log(err);

            }

            console.log("File Saved"); // Can be commented or deleted

        })


    });

}

//Calling the function setEnv

setEnv('key1', 'value2');

之后使用運行您的文件


node filename.js

您可以獲得您想要的輸出。


初始 .env 文件


# I am a note ...

key1=value1


key2=value2

   # I am a note ...

運行程序后


key1=value2

key2=value2

是的,你的評論被刪除了。


查看完整回答
反對 回復 2023-11-12
?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

const fs = require('fs');

const envfile = require('envfile');

const envPath = 'pathToEnvFile/.env';

let parsedFile = envfile.parseFileSync(envPath);

parsedFile.NEW_VAR = 'newVariableValue';

fs.writeFileSync(envPath, envfile.stringifySync(parsedFile));


查看完整回答
反對 回復 2023-11-12
?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

像這樣的:


function setEnv(envText, key, value) {

  if (!envText) {

    return;

  }

  const rp = new RegExp(`${key}=(.*?)\\s`);

  let result = envText.replace(rp, (m, $1) => {

    return m.replace($1, value);

  });

  if (!rp.test(result)) {

    result += `\n${key}=${value}`;

  }

  return result;

}


console.log(

  setEnv(

    `# I am a note ...

  key1=value1

  

  key2=value2

     # I am a note ...`,

    'key1',

    'value2',

  ),

);


但這不起作用:


setEnv(

    `# I am a note ...

  key1=value1

  

  key2=value2`,

    'key2',

    'value1',

  )

setEnv(

    `# I am a note ...

  key1key2=value1

  

  key2=value2`,

    'key2',

    '2222',

  )


查看完整回答
反對 回復 2023-11-12
  • 3 回答
  • 0 關注
  • 356 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號