节点js,process.env不读取环境变量
Posted
技术标签:
【中文标题】节点js,process.env不读取环境变量【英文标题】:Node js, process.env not reading enviroment variables 【发布时间】:2021-08-12 03:25:16 【问题描述】:即使我可以看到在 Windows 上创建了一个环境变量,process.env
总是返回 undefined
。我确实设置了所有变量,当我手动检查它们时,它们都出现在提示符中,但 process.env
始终保持未定义。
附:我没有管理员权限,除非我查看process.env.NODE_ENV
。
【问题讨论】:
【参考方案1】:您需要先阅读它们。
使用dotenv 包。
安装:
npm install dotenv
在你的项目代码中:
require('dotenv').config()
在您的项目文件夹中添加 .env 文件,如下所示:
DB_HOST=localhost
DB_USER=root
DB_PASS=s1mpl3
尝试像这样获取环境变量:
const db = require('db')
db.connect(
host: process.env.DB_HOST,
username: process.env.DB_USER,
password: process.env.DB_PASS
)
顺便说一句,将它们写入文件以使其成为环境变量是不够的。您需要在控制台中编写它们,然后它们成为环境变量。 .env 文件方法允许您将它们写入文件并通过 donenv 包从那里读取它们。
【讨论】:
其实我不知道为什么读取已经创建好的环境变量不起作用。但在这种情况下,只需使用 .env 文件即可。 好吧,我很尴尬地说这都是一个错字,你看我有阅读障碍,我写的是 EVN 而不是 ENV。这就是为什么我无法弄清楚我一直盯着这个问题的问题,但我没有意识到我打错了。我确实正确设置了变量,我什至检查了 H_KEY_LOCAL_MACHINE。感谢您的快速回答, @DardanGjoka 有趣。好吧,如果你这么想的话,我也有阅读障碍,因为我有时会注意力不集中,而且我也会把事情搞混。祝你有美好的一天!以上是关于节点js,process.env不读取环境变量的主要内容,如果未能解决你的问题,请参考以下文章
节点 process.env.VARIABLE_NAME 返回未定义
理解webpack之process.env.NODE_ENV详解(十八)