读取配置文件godotenv

Posted F3nGaoXS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读取配置文件godotenv相关的知识,希望对你有一定的参考价值。

加载配置文件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

以上是关于读取配置文件godotenv的主要内容,如果未能解决你的问题,请参考以下文章

读取配置文件godotenv

go godotenv配置环境

python读取ini配置文件+Scala读取配置文件

JAVA零配置读取配置文件

nacos 读取配置文件占位符读取不出来

家庭版.net无法读取配置文件