从流星中的配置文件或环境变量中获取值

时间:2012-09-26 06:07:19

标签: environment-variables configuration-files meteor

这对于存储API密钥或其他敏感信息非常有用。根据我的理解,你可以在本地使用配置文件,但它们不能在meteor.com上运行,但我听说有传言说环境变量很快就会被支持,或者已经是最近发布的了,但我不能找到任何例子。

有人可以提供一个如何从环境变量或其他安全位置检索值的示例吗?

3 个答案:

答案 0 :(得分:4)

您实际上可以访问process对象以检索Meteor中的环境变量。实质上,只需执行与此solution

相同的操作

答案 1 :(得分:3)

经过一番考虑后,将它们全部存储在对象文字内的.js文件中,将该文件添加到.gitignore,并使用虚拟或空白值检入相应的.js.sample文件会做的。

答案 2 :(得分:3)

有一种更好的方法来处理环境变量。如果您来自Ruby on Rails,那么您已经习惯在.ENV文件或config/application.yml文件中设置环境变量。

Meteor以类似的方式处理环境变量。

创建settings.json文件

在项目的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
    }
  }
);

这就是它的全部!确保您的设置安全,并提交您的密钥。