DOTENV Windows环境变量,但未显示其他任何变量

我正在使用Node,并且在我的PC上安装了bootstrap.servers=hostname1:9093 listeners=http://0.0.0.0:8088 ksql.logging.processing.topic.auto.create=true ksql.logging.processing.stream.auto.create=true #ksql.schema.registry.url=? ksql.security.protocol=ssl ksql.ssl.keystore.location=/root/.kafka/kafka.server.keystore.jks ksql.ssl.keystore.password=password ksql.ssl.key.password=password ksql.ssl.client.auth=true ksql.streams.state.dir=/etc/ksql/ ksql.ssl.truststore.location=/root/.kafka/kafka.server.truststore.jks ksql.ssl.truststore.password=password ERROR: [ 2019-11-12 14:17:27,790] ERROR Failed to start KSQL (io.confluent.ksql.rest.server.KsqlServerMain:62) io.confluent.ksql.util.KsqlServerException: Could not get Kafka cluster configuration! at io.confluent.ksql.services.KafkaClusterUtil.getconfig(KafkaClusterUtil.java:77) at io.confluent.ksql.engine.TopicaccessValidatorFactory.isKafkaAuthorizerEnabled(TopicaccessValidatorFactory.java:66) at io.confluent.ksql.engine.TopicaccessValidatorFactory.create(TopicaccessValidatorFactory.java:50) at io.confluent.ksql.rest.server.KsqlRestApplication.buildApplication(KsqlRestApplication.java:505) at io.confluent.ksql.rest.server.KsqlRestApplication.buildApplication(KsqlRestApplication.java:444) at io.confluent.ksql.rest.server.KsqlServerMain.createExecutable(KsqlServerMain.java:94) at io.confluent.ksql.rest.server.KsqlServerMain.main(KsqlServerMain.java:59) Caused by: java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment. at org.apache.kafka.common.internals.KafkaFutureImpl.wrapAndThrow(KafkaFutureImpl.java:45) at org.apache.kafka.common.internals.KafkaFutureImpl.access$000(KafkaFutureImpl.java:32) at org.apache.kafka.common.internals.KafkaFutureImpl$SingleWaiter.await(KafkaFutureImpl.java:89) at org.apache.kafka.common.internals.KafkaFutureImpl.get(KafkaFutureImpl.java:260) at io.confluent.ksql.services.KafkaClusterUtil.getconfig(KafkaClusterUtil.java:55) ... 6 more Caused by: org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment. ,并将一个虚拟环境变量(API_KEY = 43783283287)存储在.env文件中。

还请考虑以下文件的路径(如果有帮助的话):

  • app.js存储在bloccit / src / app.js
  • .env存储在bloccit / .env
  • main-config.js存储在bloccit \ src \ config \ main-config.js

要获得完整图片,这也是代码提取

main-config.js:

dotenv

app.js:

require("dotenv").config()
const path = require("path");
const viewsFolder = path.join(__dirname,"..","views");

.env:

const express = require("express");
const app = express();

const appConfig = require("./config/main-config.js");

console.log(process.env); //returns windows environment variables
console.log(process.env.API_KEY); //returns undefined

const routeConfig = require("./config/route-config.js");

appConfig.init(app,express);
routeConfig.init(app);

module.exports = app;

问题:当我运行app.js文件(包括API_KEY=43783283287 )时,我得到了所有Windows环境变量的列表(请参见下图),但是在列表中没有看到我的API_KEY。

此外,如果我执行console.log(process.env),它将返回console.log(process.env.API_KEY)

我在做什么错?

DOTENV Windows环境变量,但未显示其他任何变量

hhhhj2006 回答:DOTENV Windows环境变量,但未显示其他任何变量

以我为例,每次我尝试使用process.env.MY_KEY从.env文件中获取密钥时,它都返回undefined。

这个问题困扰了我两个小时,只是因为我给文件命名为keys.env之类的东西,但它不被认为是.env文件。

这是故障排除列表:

文件名应为.env(我相信.env.test也可以)。

使用此语句require('dotenv').config();

确保在应用程序中尽早要求它

.env文件应位于项目的根目录中。

遵循DB_HOST=localhost之类的“文件编写规则”,无需将值用双引号或单引号引起来。

此外,请在NPM网站上查看该软件包的文档。

,

我使用 PM2 来运行我的应用程序,我遇到了与你们完全相同的情况,伙计们。我在尝试打印/使用 .env 文件时遇到了 undefined

就我而言,问题在于我在“dist”文件夹之外运行 pm2 start。例如:我只是打开 Powershell 并运行 pm2 start C:\inetpub\wwwroot\node-apps\my-app\dist\index.js --name my-app

在谷歌搜索后两个小时后,我意识到我在做什么......(捂脸) 我之前运行过 cd dist_path,然后才运行 pm2 start index.js --name=my=app,它就像一个魅力。

我希望它可以帮助我面临同样问题的人。

,

您正在调用 require('dotenv').config() 位于存储 .env 文件的根目录上方的两个目录。

应该是

main-config.js

const path = require("path");
require("dotenv").config({ path: path.join(__dirname,"../../") })
const viewsFolder = path.join(__dirname,"..","views");
本文链接:https://www.f2er.com/3113705.html

大家都在问