在Go(Golang)中加载一个.env或环境文件的方法

3,629 阅读1分钟

概述

golang中的gotenv包可以用来在golang 中加载 .env环境文件。 github.com/joho/godote…

下面是该函数的语句

func Load(filenames ...string) (err error) 

它需要一个数量不等的参数,每个参数可以是它需要加载的 .env 文件名。

程序

创建一个文件local.env,内容如下

STACK=DEV
DATABASE=SQL

以下是该程序

package main

import (
	"fmt"
	"log"
	"os"

	"github.com/joho/godotenv"
)

func main() {
	err := godotenv.Load("local.env")
	if err != nil {
		log.Fatalf("Some error occured. Err: %s", err)
	}

	val := os.Getenv("STACK")
	fmt.Println(val)

	val = os.Getenv("DATABASE")
	fmt.Println(val)
}

输出

DEV
SQL

它加载了local.env文件并给出了正确的输出。

它也可以用来加载多个.env文件。创建一个新的文件test.env,内容如下

TEST=UNIT
package main

import (
	"fmt"
	"log"
	"os"

	"github.com/joho/godotenv"
)

func main() {
	err := godotenv.Load("local.env", "test.env")
	if err != nil {
		log.Fatalf("Some error occured. Err: %s", err)
	}

	val := os.Getenv("STACK")
	fmt.Println(val)

	val = os.Getenv("DATABASE")
	fmt.Println(val)

	val = os.Getenv("TEST")
	fmt.Println(val)
}

输出

DEV
SQL
UNIT

如果你没有给Load函数提供任何参数,那么默认情况下它会加载当前目录名为.env的文件。

在当前目录下创建一个名为.env 的文件,内容如下

STACK=DEV
DATABASE=SQL
package main

import (
	"fmt"
	"log"
	"os"

	"github.com/joho/godotenv"
)

func main() {
	err := godotenv.Load()
	if err != nil {
		log.Fatalf("Some error occured. Err: %s", err)
	}

	val := os.Getenv("STACK")
	fmt.Println(val)

	val = os.Getenv("DATABASE")
	fmt.Println(val)
}

注意在上面的程序中,我们没有给Load函数传递任何参数

输出

DEV
SQL

这就是关于在Golang中加载 .env文件的问题。