问题标签 [dotenv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1853 浏览

django - .env 在 uwsgi 上使用 django-environ 重新加载

我真的需要一拳。我确实有完整的设置和运行项目。Django、nginx、supervisor、uwsgi - 启用触摸重载的帝王。

uwsgi.ini

当我进行更改并触摸文件时,它会重新加载所有内容,项目运行完美。

但我确实对 .env 文件有疑问。

django settings.py

如果我更改 .env 文件中的某些内容并将其上传到服务器,触摸 wsgi 文件,它不会反映 .env 文件中的更改。如果我调用 manuall 'service uwsgi.project restart' 它会加载新的文件内容。

问题:我是否错过了配置中的某些内容?触摸文件时如何强制 uwsgi 重新加载 .env 文件内容。

谢谢

0 投票
2 回答
3644 浏览

django - 在 Django Celery 中使用来自 .env 的环境变量

我正在使用Django 2.xCelery 4.3.x

在我的Django应用程序中,我使用dotenv.env文件中提供环境变量并加载环境变量,我在manage.pywsgy.py文件中有以下脚本

环境变量具有插件使用的 AWS 凭证,以使用SESanymail发送邮件。

现在,我正在使用 Celery 任务发送电子邮件并使用命令行运行 celery worker

工作人员正在运行,但是在发送电子邮件时,它在 celery 任务中出现错误,因为

似乎试图与我的笔记本电脑的用户连接,而不是使用.env文件中定义的凭据。

如何使用该.env文件将环境文件提供给 Celery 工作人员?

0 投票
1 回答
209 浏览

node.js - 如何在持续集成中管理 .env 配置

我用 nodejs 开发一个应用程序并做出反应。我在不同的环境中使用 dotenv 进行配置。

我使用 TFS 2017 构建和发布我的应用程序。

添加生产环境的 .env 文件的最佳做法是什么?

0 投票
1 回答
1616 浏览

javascript - React 中的 env-vars 使用 Dotenv 和 Webpack

我想访问我在前端(React)中定义的一些环境变量。

我有以下设置:

  • React + NodeJS(我不使用create-react-app
  • 网络包 4
  • 多腾夫

我试图关注https://medium.com/@trekinbami/using-environment-variables-in-react-6b0a99d83cf5#0618但它不起作用,也不会抛出任何错误。

webpack.config.js

有了上面的 Webpack 配置,我想我应该可以<h4>My var: {process.env.REACT_APP_MY_VAR}</h4>file.js,当然我已经在位于项目根目录的 -file 中定义REACT_APP_MY_VAR.env

上面我希望file.js渲染 的值REACT_APP_MY_VAR,但我没有渲染任何东西,无论是值还是错误。

0 投票
1 回答
1089 浏览

node.js - process.env 变量与 .env 配置中的值不同

在最近的一个 nodejs 项目中,我遇到了一件很奇怪的事情:我在 .env 文件中设置了 HOSTNAME 变量,当它包含在 .js 文件中时,HOSTNAME 的值与 .env 中的不同。为什么

--

情况

.env

服务器.js

控制台输出

预期的控制台输出

--

调试

  • Nodejs 应用程序安装在 windows server 2008 上,其中机器的 DNS 条目是 foo.bar.com。从 Intranet 甚至可以通过“ http://foo ”访问该机器(无论出于何种原因)。
  • 该服务器上没有其他 nodejs 应用程序运行
  • 问题只发生在 HOSTNAME 上,没有其他变量名(至少不是我能找到的)
  • 如果 HOSTNAME=localhost 并且我从服务器浏览器运行应用程序,则工作得很好
  • 如果我将 HOSTNAME 重命名为 _HOSTNAME (并替换我的代码中所有出现的 HOSTNAME),则工作得很好
  • 如果我在本地机器上运行代码并且只有一个 .hosts 条目“127.0.0.1 foo.bar.com”,则工作得很好

我已经通过重命名为 _HOSTNAME 解决了这个问题,但我想知道为什么会发生这种情况,以及是否有其他 .env 变量名可能会受到这种奇怪事件的影响

0 投票
2 回答
1650 浏览

javascript - 在我获得 .env 文件中的所有变量之后,如果它在 bash 或系统中定义,如何替换它们的任何变量的值

在 nodejs 项目中如果

  • 我有index.js包含以下内容的文件
  • 我有.env包含以下内容的文件
  • 然后我去 bash 并运行以下命令

ENVIRONMENT_VARIABLE运行应用程序后我将获得 的价值是b(在 bash 中反抗)


但是在 webpack 项目中如果

  • 我有index.js包含以下内容的文件
  • 而且我的.env文件与前一个相同(在 nodejs 项目中)
  • 而我的 webpack 配置如下
  • 然后我去 bash 并运行以下命令

ENVIRONMENT_VARIABLE运行应用程序后我将获得 的值是a(在.env文件中阻止)而不是b(在 bash 中阻止)

但是ENVIRONMENT_VARIABLE我想要获得的价值是b(在 bash 中拒绝)而不是a(在.env文件中拒绝)。如果ENVIRONMENT_VARIABLE没有在 bash 或系统中定义,我想要获得的值是a(在.env文件中定义)

0 投票
2 回答
1143 浏览

node.js - 如何从nodejs中的process.environment中提取环境变量

我已经在我的虚拟 nodejs 项目中成功集成了条带支付。但是我仍然遇到了一个问题,因为我必须将代码推送到我的 github 存储库,所以我无法继续前进。所以,我通过 npm 安装了 dotenv 包,并创建了一个 .env 文件来存储我的条带密钥。如果我使用 process.env.STRIPE_SECRET_KEY 提取条带密钥付款失败,但如果我直接通过 STRIPE_SECRET_KEY 付款成功。

我什至安慰了 process.env,它确实显示了我的条带密钥。

这是我的 server.js 文件:

这是我的 payment.js 文件:

这是我的 .env 文件:

直接将条带密钥传递给条带可以工作,但如果我使用 process.env.STRIPE_SECRET_KEY 提供条带密钥,它会失败。我希望 process.env.STRIPE_SECRET_KEY 工作,以便我可以安全可靠地将代码推送到我的 github 存储库。

0 投票
1 回答
63 浏览

javascript - 如何让 Dotenv 和 Nock 协同工作?

目前在我的一个应用程序中,我正在使用 nock 来模拟我的 api 请求。不幸的是,在同一个项目的另一个测试文件中,我使用了 dotenv。如果我使用 dotenv,我的 nock 没有模拟 url,它使用的是原始 api 请求。任何建议或帮助表示赞赏。 我的测试文件

我在测试目录中的其他文件

0 投票
1 回答
382 浏览

node.js - 如何测试 dotenv 包以确保它隐藏敏感数据?

dotenv包在 Node.js 应用程序中用于向外界隐藏敏感数据

部署它很简单,

在 app.js 中设置自定义目录来访问.env文件也很简单,

.env以简单的名称/值模式存储数据,

从 app.js 很容易访问这些数据,

问题:我怎么知道这是否对外界隐藏了数据?我可以在dotenv启用和禁用的情况下执行哪些测试以显示它隐藏了敏感数据?我希望能够证明它是有效的。

0 投票
1 回答
675 浏览

node.js - dotenv 似乎没有加载任何环境变量

我正在开发标准的 Node+Express 网络应用程序。其他一切工作正常,但我无法使.env文件填充 process.env

起初,我认为这是一个范围问题,因为我的 app.js 是从哪里dotenv调用的,它位于 src 子文件夹中并且.env位于根目录中。但是使用节点工具并使用名为 的包确认它find-config,我有正确的绝对路径。我从来没有因为找不到文件而收到 ENOENT。

我尝试了一切,从dotenv文档中解释的调试内容到我自己的调试,确保一切就绪。这是我最近的尝试:

我已经暂停执行并断言这确实realpath是绝对.env路径 这里是.env

console.log 输出{},这与我尝试过的每一种途径都是一致的:从来没有错误,也从来没有解析过的对象。只是虚无。

这样做:

它会反弹{"parsed":{}}

我变得如此可疑,以至于我下载、安装并运行了 29k 星的大型 Hackathon Starter 存储库,它使用相同的方法

最初,它不起作用,因为作者使用了相对路径。使用绝对路径,它可以工作。

如果有帮助,请提供更多信息:

这会记录以下内容:

如您所知,该缓冲区确实是文件: