S. *_*ler 4 javascript node.js dotenv
我正在尝试在节点服务器上使用 dotenv 实现环境变量,但是我无法从位于根目录中的 .env 文件加载它们。当我运行时const dotenv = require("dotenv").config({debug: true});,我遇到以下消息:"USER" is already defined in process.env and will not be overwritten
此外,当我尝试加载页面时,它遇到以下错误:ER_DBACCESS_DENIED_ERROR: Access denied for user ''@'localhost' to database '_api'
.env:
USER=root
PASS=
Run Code Online (Sandbox Code Playgroud)
来自变量覆盖/优先级。
已经设置的环境变量不会被覆盖,这意味着命令行变量比 env 文件中定义的所有变量具有更高的优先级;
我们永远不会修改任何已经设置的环境变量。特别是,如果 .env 文件中的某个变量与环境中已存在的变量发生冲突,则将跳过该变量。此行为允许您使用特定于计算机的环境覆盖所有 .env 配置,但不建议这样做。
如果你想覆盖 process.env 你可以这样做:
const fs = require('fs')
const dotenv = require('dotenv')
const envConfig = dotenv.parse(fs.readFileSync('.env.override'))
for (const k in envConfig) {
process.env[k] = envConfig[k]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8805 次 |
| 最近记录: |