配置

在这章节我们将学习如何管理配置。

环境变量是有效隔离不同环境之间一些特定值或者密钥的最好的方法,而不是将配置直接写在代码里面或者配置文件。

可用的环境变量

下面是一些Buffalo可用的环境变量:

Variable Default Usage
GO_ENV development The environment (dev, qa, production etc.) that Buffalo is run in
GO_BIN go The Go compiler to use
BUFFALO_PLUGIN_PATH $PATH Where Buffalo looks for plugins
BUFFALO_PLUGIN_TIMEOUT 1s How long Buffalo waits for a plugin to respond
ADDR 127.0.0.1 or 0.0.0.0 Which address to bind the server to
PORT 3000 Which port to bind the server to
HOST http://127.0.0.1:$PORT The "URL" of the application (i.e. what end users type in)
SESSION_SECRET "" A salt used for securing sessions

自定义环境变量

我们可以自己定义环境变量,并且在我们的Buffalo项目中使用这些变量。可以通过包 envy 来简单的使用。

import "github.com/gobuffalo/envy"

// [...]

// 获取 环境变量 MYSECRET , 如果没有设定的话,为空。
var MYSECRET = envy.Get("MYSECRET", "")

// 获取 环境变量 REQUIREDSECRET, 如果没有设定的话,返回错误
REQUIREDSECRET, err := envy.MustGet("REQUIREDSECRET")

支持.env文件

Buffalo 从0.10.3 之后的版本开始支持 .env,意思就是在app启动的时候一次性从.env文件读取变量设置为环境变量。Buffalo会从项目的根目录下加载.env文件。

如果没有配置过.env文件,下面是一个例子:

SENDGRID_API_KEY=ABCCOQ7GFRVCW0ODHPFQ3FTP5SLL1Q
SENDGRID_EMAIL=email@myapp.com

APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=https://myapp.com

在使用buffalo new 创建项目的时候,已经替我们在根目录下创建了.env文件。同时也将.env加入到.gitignore中了,防止.env文件被提交到git服务器上,减少可能出现的泄露。

本文章首发在 LearnKu.com 网站上。
上一篇 下一篇
superwen
讨论数量: 0
发起讨论 只看当前版本


暂无话题~