这对于存储API密钥或其他敏感信息非常有用。根据我的理解,你可以在本地使用配置文件,但它们不能在meteor.com上运行,但我听说有传言说环境变量很快就会被支持,或者已经是最近发布的了,但我不能找到任何例子。
有人可以提供一个如何从环境变量或其他安全位置检索值的示例吗?
答案 0 :(得分:4)
您实际上可以访问process
对象以检索Meteor中的环境变量。实质上,只需执行与此solution
答案 1 :(得分:3)
经过一番考虑后,将它们全部存储在对象文字内的.js
文件中,将该文件添加到.gitignore
,并使用虚拟或空白值检入相应的.js.sample
文件会做的。
答案 2 :(得分:3)
有一种更好的方法来处理环境变量。如果您来自Ruby on Rails,那么您已经习惯在.ENV
文件或config/application.yml
文件中设置环境变量。
Meteor以类似的方式处理环境变量。
在项目的server
文件夹中,创建一个文件并将其命名为settings.json
。将此文件添加到您的gitignore文件中。
在此JSON文件中,您可以保存所需的任何环境变量。
{
"facebookAppId": "6666667527666666",
"facebookAppSecret": "00004b20dd845637777321cd3c750000",
"amazonS3Bucket": "bucket-name"
}
要在运行时在应用内使用这些值,请使用--settings
选项标记启动Meteor。
$ meteor run --settings server/settings.json
要使用这些值,只需调用Meteor.settings
对象。
ServiceConfiguration.configurations.upsert(
{ service: "facebook" },
{
$set: {
appId: Meteor.settings.facebookAppId,
secret: Meteor.settings.facebookAppSecret
}
}
);
这就是它的全部!确保您的设置安全,并不提交您的密钥。