2025年读取配置文件godotenv

读取配置文件godotenv加载配置文件 Load 读取配置文件 然后将读取到的键值对写入环境变量 godotenv Load fileName 加载配置文件或者 godotenv Read filename 读取配置文件 os Getenv key 通过 key 读取 value package main import fmt

大家好,我是讯享网,很高兴认识大家。

加载配置文件Load

读取配置文件,然后将读取到的键值对写入环境变量

  1. godotenv.Load(fileName)加载配置文件或者godotenv.Read(filename)读取配置文件
  2. 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


讯享网

如果多个配置文件中存在同一键,那么以先加载的键的值为准!而不是后加载的键覆盖后加载的键。

多环境配置

实际开发中可能有好几种不同环境的配置文件,如devtestprod三种环境的配置文件,可以使用一个总配置文件,指名当前的环境,再根据不同的环境拿到对应的配置文件即可。

示例

.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

小讯
上一篇 2025-03-16 21:01
下一篇 2025-02-20 20:18

相关推荐

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