节点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 返回未定义

React-js中的环境变量

理解webpack之process.env.NODE_ENV详解(十八)

vue项目环境变量配置的实现方法

node.js 的 config.yaml 中 Heroku 环境变量的语法?

设置node_env的环境变量