侧边栏壁纸
博主头像
Gstory's Blog 博主等级

每天进步一点点!

  • 累计撰写 108 篇文章
  • 累计创建 23 个标签
  • 累计收到 11 条评论

目 录CONTENT

文章目录
GO

GO库之godotenv

gstory
2022-05-30 / 0 评论 / 0 点赞 / 146 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于2023-10-08,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

介绍

在开发过程中,我们需要将一些变量抽取到环境变量中进行配置。在GO开发中我们可以通过godotenv来实现这一功能。godotenv库从.env文件中读取配置,然后存储到程序的环境变量中。

使用

安装

go get github.com/joho/godotenv

文件

可执行程序相同目录下,添加一个.env文件

name = test

使用

package main

import (
  "fmt"
  "log"
  "os"

  "github.com/joho/godotenv"
)

func main() {
  err := godotenv.Load()
  if err != nil {
    log.Fatal(err)
  }

  fmt.Println("name=>", os.Getenv("name"))
}

输出

name=>test

扩展

自动加载

package main

import (
  "fmt"
  "os"

  _ "github.com/joho/godotenv/autoload"
)

func main() {
  fmt.Println("name: ", os.Getenv("name"))
}

加载自定义文件

package main

import (
  "fmt"
  "log"
  "os"

  "github.com/joho/godotenv"
)

func main() {
  err := godotenv.Load("dev.env")
  if err != nil {
    log.Fatal(err)
  }

  fmt.Println("name: ", os.Getenv("name"))
}

多个环境

创建 .env.dev,.env.prod,.env.test多个文件

package main

import (
    "fmt"
    "log"
    "os"

    "github.com/joho/godotenv"
)

func main() {
    env := os.Getenv("DEV_ENV")
    if env == "" {
        env = "dev"
    }

    err := godotenv.Load(".env." + env)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println("name: ", os.Getenv("name"))
}
0

评论区