读取配置文件godotenv
Posted F3nGaoXS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读取配置文件godotenv相关的知识,希望对你有一定的参考价值。
加载配置文件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"))
参考
以上是关于读取配置文件godotenv的主要内容,如果未能解决你的问题,请参考以下文章