做法
方法一
安裝 joho/godotenv 套件。
1
| go get github.com/joho/godotenv
|
新增 .env
檔:
使用 godotenv.Load()
方法,將 .env
檔載入,並使用 os.Getenv()
方法獲取環境變數:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| package main
import ( "fmt" "log" "os"
"github.com/joho/godotenv" )
func init() { if err := godotenv.Load(); err != nil { log.Fatal("Missing .env file.") } }
func main() { fmt.Println(isLocal()) }
func isLocal() string { return os.Getenv("APP_ENV") }
|
或使用底線「_
」初始化 autoload
包,並直接使用 os.Getenv()
方法獲取環境變數:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| package main
import ( "fmt" "os"
_ "github.com/joho/godotenv/autoload" )
func main() { fmt.Println(isLocal()) }
func isLocal() string { return os.Getenv("APP_ENV") }
|
可以建立一個 GetEnv()
函式,在獲取不到指定的環境變數時提示警告。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| package main
import ( "fmt" "log" "os"
_ "github.com/joho/godotenv/autoload" )
func main() { fmt.Println(GetEnv("APP_ENV")) }
func GetEnv(name string) string { env := os.Getenv(name)
if env == "" { log.Printf("Environment variable not found: \"%s\".", name) }
return env }
|
方法二
安裝 spf13/viper 套件。
1
| go get github.com/spf13/viper
|
新增 local.env
檔:
.env
檔必須有名字,預設會尋找叫做 config.env
的環境變數檔。
將環境變數檔的路徑載入後,使用 viper.Get()
方法獲取環境變數:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| package main
import ( "github.com/spf13/viper" "log" )
func init() { viper.AddConfigPath("./") viper.SetConfigName("local") if err := viper.ReadInConfig(); err != nil { log.Fatalln(err.Error()) } }
func main() { log.Print(viper.Get("APP_ENV")) }
|