有没有办法在node.js应用程序的另一个目录中使用环境变量

问题描述 投票:0回答:3

我有一个项目,文件夹结构如下,

根 > 客户端、服务器

我想使用 /Server/src 中根目录的 .env 文件中的环境变量,但是当我尝试将其导入 /Server/src 时,环境变量未定义。

有没有办法使用Server目录中的那些环境变量?

// from Root directory
const dotenv = require("dotenv");

dotenv.config();

module.exports = {
  NODE_ENV: process.env.NODE_ENV,
}
// from Server directory
const { NODE_ENV,} = require("./config");

console.log(NODE_ENV); //value returns undefined
node.js environment-variables undefined
3个回答
4
投票

来自此处的文档:https://www.npmjs.com/package/dotenv

您可以通过以下方式指定客户端文件夹文件中到 .env 文件的自定义路径

require('dotenv').config({ path: '/custom/path/to/.env' })

:)


2
投票

我明白你想要做什么,但除非文件路径是

"./config"
,否则它将无法工作。你说它在根目录中,所以很可能你没有使用正确的路径。至少需要一个
../
才能退出服务器目录并进入根目录以访问要从中导出的文件。

话虽这么说,为什么还要麻烦呢?您应该只在需要访问环境变量的任何文件中要求 dotenv 。我不知道你用这个方法能节省什么。

代码量几乎相同,但更少,因为您没有创建这个额外的抽象层:

// from Server directory
require("dotenv").config();

console.log(process.env.NODE_ENV);

0
投票

如果它来自根目录,你可以使用

./
我尝试了这个并且它有效

© www.soinside.com 2019 - 2024. All rights reserved.