加载配置文件Load
读取配置文件,然后将读取到的键值对写入环境变量
godotenv.Load(fileName)加载配置文件或者godotenv.Read(filename)读取配置文件os.Getenv(key),通过key读取value
package main import ( "fmt" "log" "os" "github.com/joho/godotenv" ) func main() {
// 1 godotenv加载文件,并且set到环境变量中 // 2 通过os.Getenv(key)根据key读取环境变量value err := godotenv.Load() if err != nil {
log.Fatalln(err) } fmt.Println("app_name:", os.Getenv("app_name")) fmt.Println("app_version:", os.Getenv("app_version")) }
讯享网
自动加载
你可以导入github.com/joho/godotenv/autoload:
讯享网import ( _ "github.com/joho/godotenv/autoload" )
让程序自动加载配置文件,省去了godotenv.Load()这一步骤:
package main import ( "fmt" "os" _ "github.com/joho/godotenv/autoload" ) func main() {
fmt.Println("app_name:", os.Getenv("app_name")) fmt.Println("app_version:", os.Getenv("app_version")) }
读取配置文件Read
读取配置文件,然后返回map[string]string
配置文件
godotenv.Load()默认加载的配置文件名为.env,该文件的格式是键值对
讯享网key = value
还支持YAML格式
多个配置文件
可以使用godotenv.Load(filename1, filename2)或者godotenv.Read(filename1, filename2)的方式来读取或者加载多个配置文件
Tips:
如果多个配置文件中存在同一键,那么以先加载的键的值为准!而不是后加载的键覆盖后加载的键。
多环境配置
实际开发中可能有好几种不同环境的配置文件,如dev、test、prod三种环境的配置文件,可以使用一个总配置文件,指名当前的环境,再根据不同的环境拿到对应的配置文件即可。
示例
.active-env
active = dev
.env.dev
讯享网app_name = dev_app
.env.test
app_name = test_app
.env.prod
讯享网app_name = test_app
main.go读取
package main import ( "fmt" "log" "os" "github.com/joho/godotenv" ) func main() {
if err := godotenv.Load(".active-env"); err != nil {
log.Fatalln(err) } // 根据不同环境去加载不同的配置文件到环境变量中 activeEnv := os.Getenv("active") if activeEnv == "dev" || activeEnv == "" {
if err := godotenv.Load(".env.dev"); err != nil {
log.Fatalln(err) } } else if activeEnv == "test" {
if err := godotenv.Load(".env.test"); err != nil {
log.Fatalln(err) } } else if activeEnv == "prod" {
if err := godotenv.Load(".env.prod"); err != nil {
log.Fatalln(err) } } fmt.Println("app_name:", os.Getenv("app_name")) }
参考
Go每日一库godotenv

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/127386.html