如何使用该子目录的 .env 变量从子目录运行节点应用程序?

nex*_*186 2 directory environment-variables node.js

我有一个名为 app.js 的 Node.js 应用程序,它存储在目录 B 中。

要正确运行此脚本,它需要环境变量。这些存储在名为 .env 的文件中,该文件也在目录 B 中。

在我的 app.js 中,环境变量是通过加载的,require("dotenv").config(); 然后我可以使用例如访问它们process.env.SOME_VAR

因此,如果我当前位于目录 B 中,则可以直接使用node app并且我的应用程序将执行得很好。

但是,如果我转到父目录 A 并尝试通过以下方式运行我的应用程序

node ./B/app

它不会执行,因为它似乎无法访问 .env 文件的环境变量。

所以,我的问题是,如果我想将 .env 文件保留在同一目录中,如何从其父文件夹运行我的脚本?

小智 5

您可以使用dotenv加载环境变量的内容,即

const dotenv = require('dotenv');

// ...

// Then go ahead to load the .env file content into process.env
dotenv.config({ path: '/full/custom/path/to/your/env/vars' });
Run Code Online (Sandbox Code Playgroud)