9

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

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

4

3 回答 3

4

您实际上可以访问该process对象以检索 Meteor 中的环境变量。本质上,只需执行与此解决方案相同的操作

于 2012-10-19T08:41:20.110 回答
3

经过一番思考,将它们全部存储在.js对象文字内的文件中,将该文件添加到,并使用虚拟或空白值.gitignore签入相应的文件就可以了。.js.sample

于 2013-02-27T15:58:47.430 回答
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
    }
  }
);

这里的所有都是它的!确保您的设置安全,不要提交您的密钥。

于 2015-07-23T04:07:44.237 回答