首页 > 解决方案 > nodejs如何读写.env文件?

问题描述

如何读写env文件?

原文件:</p>

# I am a note ...
key1=value1

key2=value2
   # I am a note ...

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

运行setEnv('key1', 'value2'),让它变成:</p>

# I am a note ...
key1=value2

key2=value2
   # I am a note ...

我怎样才能实现它?

标签: javascriptnode.js

解决方案


让我们从创建新项目开始。

mkdir folder_name
cd folder_name
npm init

然后在您的项目目录中安装“envfile”和“dotenv”。安装 envfile 的命令是

npm install envfile --save

同样安装 dotenv

npm install dotenv --save

package dotenv 直接读取 .env 文件 package 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

是的,您的评论将被删除。


推荐阅读