【问题标题】:Node js, process.env not reading enviroment variables节点js,process.env不读取环境变量
【发布时间】:2021-08-12 03:25:16
【问题描述】:

即使我可以看到在 Windows 上创建了一个环境变量,process.env 总是返回 undefined。我确实设置了所有变量,当我手动检查它们时,它们都出现在提示符中,但 process.env 始终保持未定义。

附:我没有管理员权限,除非我查看process.env.NODE_ENV。

【问题讨论】:

    标签: javascript node.js json windows var


    【解决方案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 有趣。好吧,如果你这么想的话,我也有阅读障碍,因为我有时会注意力不集中,而且我也会把事情搞混。祝你有美好的一天!
    猜你喜欢
    • 1970-01-01
    • 2016-01-28
    • 2017-01-02
    • 2017-08-13
    • 2019-02-25
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多