首页 > 解决方案 > 如何使用该子目录的 .env 变量从子目录运行节点应用程序?

问题描述

我有一个名为 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 文件保存在同一目录中,如何从其父文件夹运行我的脚本?

标签: node.jsdirectoryenvironment-variables

解决方案


您可以使用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' });

推荐阅读