对于我的Phoenix应用程序的本地开发版本,我想将gitignore/
目录中的一些密钥数据导入config.exs
。但是,有两件事我不确定:
我要导入的数据只是字符串数据 - API密钥,密钥 - 我是否需要定义模块,还是有更简单的方法来导出字符串数据?
在config.exs
中使用的适当的import语句是什么,给定以下文件结构:
MyApp/
|
- config/
| |
| - config.exs
|
- gitignore/
|
- api_key.exs
- api_secret.exs
我熟悉如何在Node中完成此操作,但我不确定如何在凤凰城处理此事。
为了说明我想要实现的目标,我的一个Node应用程序的示例如下:
index.js
const APISecret = process.env.API_SECRET || require('./gitignore/api_secret.js')
const APIKey = process.env.API_KEY || require('./gitignore/api_key.js')
所需文件的位置
module.exports = 'RANDOM_KEY_HERE'
如何格式化要忽略的数据,以及在config.exs
中访问该数据的适当方式是什么?
答案 0 :(得分:1)
我建议使用.env
文件作为项目的根目录,在其中放置所有dev环境变量(将其添加到.gitignore
)。它看起来像这样:
export API_KEY=some_api_key
export API_SECRET=some_api_secret
然后,在config/config.exs
中,导出这些变量:
config :secret_things,
api_key: System.get_env("API_KEY"),
api_secret: System.get_env("API_SECRET")
很酷的是,Phoenix会自动识别.env
文件,这样System.get_env/1
调用就可以在不再配置的情况下运行。
然后,您可以使用Application.get_env(:secret_things, :api_key)
在您的应用中访问这些配置变量。
重要提示:在当前终端选项卡中启动服务器或IEx时,请不要忘记source .env
。您无需在新标签中提取它。
答案 1 :(得分:0)
回答了我自己的问题......
我添加了dev.secret.exs
文件,如下所示:
use Mix.Config
config :secret_things,
api_key: "NUMBERS",
secret: "STUFF"
然后使用
将其导入dev.exs
import_config "dev.secret.exs"
并在dev.secret.exs
中加入了.gitignore
。完成。