【问题标题】:dontenv (npm module) does not load correct .env file when executing node cli app from different folder从不同文件夹执行节点 cli 应用程序时,dontenv(npm 模块)不加载正确的 .env 文件
【发布时间】:2021-02-27 00:04:51
【问题描述】:

我正在构建一个节点 CLI 应用程序,它使用 dontenv 加载一些环境变量以连接到 mysql 数据库。

我用过

npm link

链接到全局并从任何地方运行 CLI 应用程序的命令。 我面临的问题是 .env 文件只有在我从 .env 所在的文件夹运行时才会加载。

然后,如果从不同的文件夹运行相同的命令......我得到了错误,这个错误是因为 dontenv 没有正确加载 .env 文件

顺便说一句,这就是我阅读 .env 的方式,没什么特别的(据我所知)

config.js

require('dotenv').config();

let config = {};

config.MYSQL_HOST = process.env.MYSQL_HOST
config.MYSQL_DB_PROFILES = process.env.MYSQL_DB_PROFILES
config.MYSQL_USER = process.env.MYSQL_USER
config.MYSQL_PASS = process.env.MYSQL_PASS
config.AWS_PROFILE = process.env.AWS_PROFILE

module.exports = config;

然后我有一个 index.js(package.json 中的主要入口点),它调用我拥有的 process.js

const config = require('./config');

...

async function getProfileData(clientdb) {
    let conn = mysql.createConnection({
        host: config.MYSQL_HOST,
        user: config.MYSQL_USER,
        password: config.MYSQL_PASS,
        database: config.MYSQL_DB_PROFILES
    });
    conn.connect();

这就是我的问题 :((任何帮助将不胜感激)

【问题讨论】:

  • 第二个目录下的.env文件是你试过的吗?

标签: node.js npm dotenv npm-link


【解决方案1】:

我认为问题在于当您从文件夹外部运行应用程序时,它找不到您需要的 .env 文件的路径。您应该尝试在配置文件中指定 .env 路径,如下添加:

require('dotenv').config({ path: '/full/path/to/your/env/file' })

看看这是否有助于解决问题。

【讨论】:

  • 谢谢@Tuaev。那几乎就在那里,问题是。我又修复了:.config({ path: __dirname + '\\.env' }); Thaks。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-24
  • 2017-06-19
  • 2019-03-06
  • 2016-10-02
  • 1970-01-01
  • 2019-02-06
  • 1970-01-01
相关资源
最近更新 更多