Ehs*_*Ali 5 javascript environment-variables node.js
我dotenv用于读取环境变量。像这样:
let dotenv = require('dotenv').config({ path: '../../.env' });
console.log(process.env.DB_HOST);
Run Code Online (Sandbox Code Playgroud)
现在我想保存.env文件中的更改。我找不到任何方法将变量保存在.env文件中。我该怎么办?
process.env.DB_HOST = '192.168.1.62';
Run Code Online (Sandbox Code Playgroud)
Rup*_*pam 10
我一直在寻找类似的解决方案来读取和写入键/值到 .env 文件。我阅读了其他解决方案并编写了两个函数getEnvValue并setEnvValue简化读/写操作。
要使用getEnvValue,.env 文件的格式应如下所示(即=符号周围没有空格):
KEY_1="value 1"
KEY_2="value 2"
Run Code Online (Sandbox Code Playgroud)
KEY_1="value 1"
KEY_2="value 2"
Run Code Online (Sandbox Code Playgroud)
.env 文件
VAR1=var1Value
VAR_2=var2Value
Run Code Online (Sandbox Code Playgroud)
index.js 文件
const fs = require('fs')
const envfile = require('envfile')
const sourcePath = '.env'
console.log(envfile.parseFileSync(sourcePath))
let parsedFile = envfile.parseFileSync(sourcePath);
parsedFile.NEW_VAR = 'newVariableValue'
fs.writeFileSync('./.env', envfile.stringifySync(parsedFile))
console.log(envfile.stringifySync(parsedFile))
Run Code Online (Sandbox Code Playgroud)
最终的 .env 文件安装所需的模块并执行 index.js 文件
VAR1=var1Value
VAR_2=var2Value
NEW_VAR=newVariableValue
Run Code Online (Sandbox Code Playgroud)
.env文件中。.env文件?'env' 代表环境变量。环境变量是基于 shell 的键值对,为正在运行的应用程序提供配置。
.env文件旨在提供在开发期间设置这些环境变量的简单机制(通常是因为开发人员机器不断重新启动,打开多个 shell,并且开发人员必须在需要不同环境变量的项目之间切换)。在生产中,这些参数通常由实际环境变量传递(在云配置中,通常比基于文件的解决方案更容易管理,并且可以防止将任何机密保存在磁盘上)
环境变量可以在命令行修改,但是一旦启动正在运行的进程,它就不能/不会影响父进程的环境变量。如果您的程序退出并重新启动,所做的更改将会丢失。
.env文件?如果您在文件中设置一个值.env,则仅当同名的环境变量不存在时才会使用该值。如果是,则.env不会加载文件中该变量的值。
此外,在读取时,写入.env文件的任何更改都不会反映在应用程序中process.env,直到应用程序重新启动为止。
配置文件只是包含配置的常规文件。它就像一个.env文件,但它不代表环境变量。更改它是安全的,并且在生产中使用也是安全的。
| 归档时间: |
|
| 查看次数: |
7292 次 |
| 最近记录: |