2

Revel 使用 app.conf 来存储配置。我希望我的配置使用从环境变量中获取值os.Getenv(key)

我该怎么做?我应该使用 revel.Config 进行更改吗?如果是这样,我应该把它放在哪里?

还是有其他方法?

我主要用它来存储数据库信息(我不想在配置文件中输入我的凭据)

谢谢

4

1 回答 1

3

Revel使用revel/config来管理app.conf.

从环境变量中读取的唯一type.go (c *Config) String()地方 revel/config 敌人是在方法中。

// $ environment variables
computedVal, _ = c.computeVar(&value, envVarRegExp, 2, 1, func(varName *string) string {
return os.Getenv(*varName)
})

这意味着您可以根据环境变量的名称添加配置文件值,这将允许您使用所述环境变量来修改配置。

revel/config REAMD.md请参阅文件中的示例。

[DEFAULT]
host: www.example.com
protocol: http://
base-url: %(protocol)s%(host)s    <====

OP pveyes 指出了以下评论type.go

// substitute by new value and take off leading '%(' and trailing ')s'
// %(foo)s => headsz=2, tailsz=2
// ${foo} => headsz=2, tailsz=1

所以:

  • 使用环境变量时使用${ENV_VARS}, 和
  • 对于展开变量使用%(UNF_VARS)s
于 2014-05-17T19:54:50.410 回答