当前位置: 首页 > 知识库问答 >
问题:

在node-config之前用dotenv加载ENV变量

陆高峰
2023-03-14
  "app": {
    "nodeEnv": "NODE_ENV",
    "port": "PORT",
    "hostname": "HOSTNAME"
  }
  "mongoDb": {
    "connectionString": "MONGODB_CONNECTION_STRING"
  },
  "redis": {
    "connectionString": "REDIS_CONNECTION_STRING"
  },
  "logDna": {
    "key": "LOGDNA_KEY"
  }
import * as dotenv from 'dotenv';
dotenv.config();
import * as config from 'config';

console.log(process.env);
console.log(config);
import * as config from 'config';
import * as dotenv from 'dotenv';

dotenv.config();
import * as App from 'express';
import * as dotenv from 'dotenv';

dotenv.config();
console.log(process.env);

const app = new App();
export app;
import app from './app';
import * as config from 'config';

console.log(config);

// app.use() and other inits
app.listen(...);

但没有用。加载了.env文件,我可以在process.env中看到变量,但它们不是由custom-environment-variables.json中的config加载的。F.E.将加载nodeenvporthostname变量。但它们会在应用程序启动之前加载到容器中。

这使我想到,configdotenv模块设法从.env文件加载值之前加载。基本上,问题似乎只存在于DEV env中,因为它是我从.env文件加载环境变量的唯一地方。对于任何其他环境,它们将在应用程序启动之前出现在容器环境中。

我可以强制重新加载config吗?

有什么建议如何做到这一点?

共有1个答案

章飞章
2023-03-14

最后,我决定外部加载本地env变量,同时启动节点进程:

节点--require=dotenv/config src/index.js

来自这里的灵感。

 类似资料:
  • 问题内容: 我在 根文件夹 文件中有.env 文件 并将文件放在文件夹中。文件的第一行是 我还尝试了以下操作: ; ; 但是,当我从 命令提示符* 运行文件时,不会加载我的env变量 * 如果我使用 Visual Studio 并按 F5 ,它将加载! 我不确定我在做什么错,我想念什么。任何建议都非常感谢。谢谢。 问题答案: 使用如何? 您的问题似乎是执行路径。

  • 我有几个微服务,它们都在尤里卡(发现客户端)注册。最近,我为所有微服务启用了Swagger2(SpringFox)。 一旦我启用了swagger,我的微服务就开始向Eureka注册为“Uknown”服务,并使用默认的8080端口注册。 我的应用程序类是这样的。 我已尝试从应用程序中移动我的Eureka配置。yml到引导。yml。但是,如果我移动功能区,我的客户端将无法获取应用程序实例和Eureka

  • 我正在使用SystemPropertiesLookup查找配置Log4J2配置。系统属性被设置为我的main方法中的第一行。问题是,当Log4J加载配置时,还没有调用main方法,因此还没有填充系统属性。 下面是我的log4j2.xml: 该文件将被称为app-UNKNOWN-UNKNOWN,因为当Log4J填充它时,属性还不可用。 一个可能的解决方法是在该方法之后只调用,而不是用变量初始化它,但

  • laravel 在启动时,会加载项目的 env 文件,本文将会详细介绍 env 文件的使用与源码的分析。 ENV 文件的使用 多环境 ENV 文件的设置 一、在项目写多个 ENV 文件,例如三个 env 文件: .env.development、 .env.staging、 .env.production, 这三个文件中分别针对不同环境为某些变量配置了不同的值, 二、配置 APP_ENV 环境变量

  • 我在php项目中有一个Dockerfile,我需要在执行过程中传递用户和密码以下载库。 用户和密码必须在生产或本地 .env 文件中隐藏。目前我只是尝试本地选项,用户和密码为空。 我使用过和,但不仅登录失败,而且当我打印变量时,它们是空的。我也试过将变量硬编码,它工作正常,所以问题是变量没有从. env文件中检索。 docker compose开始如下 还有 Dockerfile: .env 的开

  • 问题内容: 您好朋友,我想在特定的div加载数据之前向Ajax加载器显示,但问题是数据在同一页面上动态传输,但是我的脚本从另一个文件调用数据, 请参见下面的代码 脚本 的HTML 它的工作正常,但我想在同一页面中加载数据,请帮助我 提前致谢 .... 编辑 我想说明之前加载数据装载到 问题答案: 您可以尝试使用以下html- 和脚本-