问题标签 [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.
ruby-on-rails - Dotenv 在 routes.rb 中不可用?
自从我开始在我的 routes.rb 中使用 Dotenv 之后,我就遇到了奇怪的错误。
我在用着gem 'dotenv-rails', '~> 2.0.0'
routes.rb
:
终端:
我没有在这两者之间做任何事情rails s
,只是重复它并且它起作用了。这真的很奇怪。
这是我正在加载的地方dotenv
:
有谁知道发生了什么?
- -更新 - -
我已经用谷歌搜索并尝试了一切。它仍然只出现在所有命令的开发环境中rails
。rake
有人遇到过这个问题吗?这让我疯狂。
node.js - 如何使用 dotenv 正确加载 Node 的环境变量?
所以我需要能够根据我在应用程序中是在 Heroku 还是 localhost 来加载环境变量。看起来这样做的方法是有一个名为 NODE_ENV 的环境变量,并将其设置为“生产”或“开发”或其他。但是,要做到这一点,我需要首先检测我是否在本地主机上,在这种情况下,我将使用 dotenv 模块获取变量。所以,这是一个递归问题......有没有标准的方法来解决这个问题?
javascript - 为什么不应该签入 dotenv 文件?
我是nodejs的新手,如果我的问题太琐碎,请原谅我。我正在使用dotenv创建环境文件。
但是,在他们的网站上,他们建议不要签入.env文件。所以,我想知道如果这个文件没有被签入,我将如何告诉其他开发人员应用程序需要的环境变量。他们需要填写环境变量的值,因为它可以在js(服务器、配置)文件中的所有位置使用。查看每个使用 env 变量并替换的文件不是一件容易的事吗?除非我完全错过了一些东西。
任何帮助深表感谢。
javascript - dotenv 文件未加载环境变量
我在根文件夹文件中有 .env 文件
并在文件夹server.js
中归档。root/app/config/server.js
文件的第一行server.js
是
require('dotenv').config();
我还尝试了以下操作:
require('dotenv').config({path: '../.env'})
;
require('dotenv').config({path: '../../.env'})
;
但是,当我从命令提示符server.js
运行文件时,未加载我的 env 变量
node root/app/config/server.js
如果我使用视觉工作室并按F5,它会加载!!
我不确定我做错了什么,我错过了什么。任何建议都非常感谢。谢谢。
environment-variables - dotenv 是否与十二要素应用程序相矛盾?
我已阅读有关十二因素应用程序的配置 - 第 III 节的信息,并在 NodeJS 中搜索了一种方法。似乎大多数人建议使用dotenv将配置存储在环境变量中。
然而,dotenv 似乎与十二因素应用程序相矛盾,如下所述:
另一种配置方法是使用未检入修订控制的配置文件,例如 Rails 中的 config/database.yml。与使用检入代码仓库的常量相比,这是一个巨大的改进,但仍然存在弱点:很容易错误地将配置文件检入到代码仓库;配置文件倾向于分散在不同的地方和不同的格式,使得在一个地方查看和管理所有配置变得困难。此外,这些格式往往是特定于语言或框架的。
十二因素应用程序将配置存储在环境变量中(通常缩写为 env vars 或 env)。环境变量很容易在部署之间更改,而无需更改任何代码;与配置文件不同,它们被意外签入代码仓库的可能性很小;与自定义配置文件或其他配置机制(如 Java 系统属性)不同,它们是与语言和操作系统无关的标准。
理解这个声明,似乎使用 dotenv,您将创建一个配置文件.env
,然后将它们导出为环境变量。
这不会违反十二因素应用程序,因为.env
文件可能会意外签入代码仓库吗?
node.js - 使用 dotenv 的安全 nodejs 生产环境
通过使用dotenv,我可以在将开发 .env 文件推送到 git 存储库之前忽略它,它符合The Twelve-Factor App config factor。它可以防止配置暴露给其他人,尤其是开源项目。
但是在将其部署到生产环境时,我被卡住了,无论是使用云部署还是使用 docker。
我怎样才能包含这个文件?我应该将文件保存到Vault中吗?
请帮助我了解如何保护我的部署环境。
node.js - HTML 表单数据未在 Heroku 中发送。ENV变量问题
所以冒着获得更多反对票的风险,这是我的问题(很好!):我花了几个小时试图弄清楚如何让 Heroku 接受我刚刚添加的 ENV 变量(heroku config:set PASS_CODE='password ')。
我在 Express 应用程序中有一个简单的 HTML 联系表单,我正在使用 npm 包 nodemailer,在 .env 文件中添加了 ENV 变量以与 detenv 一起使用,并使用下面的代码调用它们。Heroku 确实声明以相同的方式调用他们的 ENV 变量,但是表单数据没有发送,我仍然在 Heroku 日志中收到以下错误:{ 错误:无效登录:535 5.0.0 身份验证失败。dotenv 和 heroku 都说使用 .process.env 调用 ENV 变量。它在我的本地 node.js 服务器中完美运行,但在我推送到 heroku 时却不行。
这是我的代码片段:
我还在 .env 文件中声明了 ENV 变量,如下所示:PASS_CODE=password
,您可以看到我需要 dotenv。
当我通过 node.js 服务器在本地运行时它工作正常,但当我推送到 Heroku 时却不行。我已经在 Heroku 中设置了 ENV 变量,并通过输入heroku config
.
为了完整起见,这是我的 package.json 文件的副本:
非常感谢!
bash - 如何在破折号中获取 dotenv (.env) 文件?
这里有很多示例如何在 bash 中获取 dotenv 文件,但有没有人使用 dash 实现相同的方法(这是最小 Debian 安装的默认 shell)?
解决方案应如下所示:
例如
重要的是,该解决方案支持带有空格的多行值,例如:
以及引号内的特殊字符(如哈希):
javascript - knexfile.js 不读取 Dotenv 变量
所以我正在尝试 knexjs,第一个设置就像一个魅力。我已经建立了我的连接,创建了一个数据结构,然后在我的终端中运行$ knex migrate:latest.
它一切正常... 迁移的表出现在我的数据库中,再次运行 migrate 并得到Already up to date
.
现在这是我遇到问题的地方:使用 Dotenv ... 这是我的代码:
据我所知,它没有任何问题,当我通过节点运行脚本时,没有出现错误。然后我想检查我是否仍然可以进行迁移,我收到以下错误:
错误:ER_ACCESS_DENIED_ERROR:用户''@'[MY IP]'的访问被拒绝(使用密码:是)
这次我只在我的.env
文件中使用相同的变量。但是当我查看错误时,没有从中加载任何内容,是的knexfile.js
和.env
都在我的项目的根目录中:) 我尝试的方法之一是以不同的方式设置路径,require('dotenv').config();
但它会从 dotenv 含义中抛出错误该文件已正确加载。
谁能帮我解决这个问题?
javascript - dotenv 中 export SOME_ENV_VAR=KEY 和 SOMEOTHER_ENV_VAR=KEY 之间的区别?
我对 Node.js 比较陌生。我想将环境变量从 .env 文件导出到我的 javascript 文件中。为了做到这一点,我正在使用 dotenv。
我应该使用哪种方法将环境变量导出到我的主要 javascript 文件(say-app.js)
需要注意的一点是,在 app.js 中的 console.log(process.env) 中,GEOCODER_API_KEY_1 显示为 env 变量,而不是 GEOCODER_API_KEY?这是为什么。那么第一个有什么用,因为它无法访问?更令人困惑的是:
我基本上想将 API_KEY(不受限制)安全地导出到我的项目中。有没有我可能会错过的问题?