Javascript 更新节点JS中.env文件中的属性

Javascript 更新节点JS中.env文件中的属性,javascript,node.js,Javascript,Node.js,我正在编写一个普通的.env文件,如下所示: VAR1=VAL1 VAR2=VAL2 我想知道我是否可以在NodeJS中使用一些模块来产生如下效果: somefunction(envfile.VAR1) = VAL3 生成的.env文件将是 VAR1=VAL3 VAR2=VAL2 i、 例如,在其他变量不变的情况下,只需更新所选变量。它看起来像是-在您想要更改一些值并保存它之后,您想要读取当前的.env文件 您应该使用standard Node.js模块库中的fs模块:它看起来像-您想在更

我正在编写一个普通的.env文件,如下所示:

VAR1=VAL1
VAR2=VAL2
我想知道我是否可以在NodeJS中使用一些模块来产生如下效果:

somefunction(envfile.VAR1) = VAL3
生成的
.env
文件将是

VAR1=VAL3
VAR2=VAL2

i、 例如,在其他变量不变的情况下,只需更新所选变量。

它看起来像是-在您想要更改一些值并保存它之后,您想要读取当前的
.env
文件


您应该使用standard Node.js模块库中的
fs
模块:

它看起来像-您想在更改一些值并保存它之后读取当前的
.env
文件

您应该使用standard Node.js模块库中的
fs
模块:

var updateAttributeNV=函数(envPath、attrName、newVal){
var dataArray=fs.readFileSync(envPath,'utf8').split('\n');
var replacedArray=dataArray.map((行)=>{
if(line.split('=')[0]==attrName){
返回attrName+“=”+字符串(newVal);
}否则{
回流线;
}
})
fs.writeFileSync(envPath,“”);
for(设i=0;i
我编写此函数是为了解决我的问题。

var updateAttributeEnv=函数(envPath、attrName、newVal){
var dataArray=fs.readFileSync(envPath,'utf8').split('\n');
var replacedArray=dataArray.map((行)=>{
if(line.split('=')[0]==attrName){
返回attrName+“=”+字符串(newVal);
}否则{
回流线;
}
})
fs.writeFileSync(envPath,“”);
for(设i=0;i

我编写此函数是为了解决我的问题。

您可以使用
fs
os
模块和一些基本的数组/字符串操作

const fs=require(“fs”);
常数os=要求(“os”);
函数setEnvValue(键,值){
//从硬盘读取文件&如果从换行符拆分到阵列,则拆分
const ENV_VARS=fs.readFileSync(“./.ENV”,“utf8”).split(os.EOL);
//根据密钥查找所需的环境
const target=ENV_VARS.indexOf(ENV_VARS.find((行)=>{
返回行.match(新RegExp(key));
}));
//用新值替换键/值
ENV_VARS.splice(目标,1,`${key}=${value}`);
//将所有内容写回文件系统
fs.writeFileSync(“./.env”,env_VARS.join(os.EOL));
}
setEnvValue(“VAR1”、“ENV_1_VAL”);
环境署署长

在执行者之后,
VAR1
将是
ENV_1_VAL


无外部模块无魔术;)

您可以使用
fs
os
模块和一些基本的数组/字符串操作

const fs=require(“fs”);
常数os=要求(“os”);
函数setEnvValue(键,值){
//从硬盘读取文件&如果从换行符拆分到阵列,则拆分
const ENV_VARS=fs.readFileSync(“./.ENV”,“utf8”).split(os.EOL);
//根据密钥查找所需的环境
const target=ENV_VARS.indexOf(ENV_VARS.find((行)=>{
返回行.match(新RegExp(key));
}));
//用新值替换键/值
ENV_VARS.splice(目标,1,`${key}=${value}`);
//将所有内容写回文件系统
fs.writeFileSync(“./.env”,env_VARS.join(os.EOL));
}
setEnvValue(“VAR1”、“ENV_1_VAL”);
环境署署长

在执行者之后,
VAR1
将是
ENV_1_VAL


无外部模块无魔术;)

这只是使用
fs
模块读取数据并更改数据并保存,所以只需查看如何使用
fs
模块。不确定这有什么用,但是不要忘记,一旦更新了
.env
文件,您需要重新启动服务器以使用新的环境变量。您可以尝试使用
fs
模块读取数据并更改数据并保存,因此只需查看如何使用
fs
模块。不确定这有什么用,但是不要忘记,更新
.env
文件后,您需要重新启动服务器以使用新的环境变量。您可以尝试
var updateAttributeEnv = function(envPath, attrName, newVal){
    var dataArray = fs.readFileSync(envPath,'utf8').split('\n');

    var replacedArray = dataArray.map((line) => {
        if (line.split('=')[0] == attrName){
            return attrName + "=" + String(newVal);
        } else {
            return line;
        }
    })

    fs.writeFileSync(envPath, "");
    for (let i = 0; i < replacedArray.length; i++) {
        fs.appendFileSync(envPath, replacedArray[i] + "\n"); 
    }
}
VAR1=VAL1
VAR2=VAL2
VAR3=VAL3