Nodejs如何读写.env文件?

如何读写env文件?


原始文件:


# I am a note ...

key1=value1


key2=value2

   # I am a note ...

我需要一个函数setEnv(key, value)。


运行setEnv('key1', 'value2'),让它变成:


# I am a note ...

key1=value2


key2=value2

   # I am a note ...

我怎样才能实现它?


哔哔one
浏览 285回答 3
3回答

jeck猫

让我们从创建新项目开始。mkdir folder_namecd folder_namenpm init然后在您的项目目录中安装“envfile”和“dotenv”。安装 envfile 的命令是npm install envfile --save同样安装dotenvnpm install dotenv --savedotenv 包直接读取 .env 文件 envfile 包用于根据需要解析和字符串化文件。.env使用您的详细信息在项目目录中创建文件。# I am a note ...key1=value1key2=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 getEnvgetEnv("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 setEnvsetEnv('key1', 'value2');之后使用运行您的文件node filename.js您可以获得您想要的输出。初始 .env 文件# I am a note ...key1=value1key2=value2   # I am a note ...运行程序后key1=value2key2=value2是的,你的评论被删除了。

慕盖茨4494581

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));

呼啦一阵风

像这样的: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',  )
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript