如何分析Go中的godotenv
创始人
2024-12-22 01:01:38
0次

Go 中的godotenv
简介
twelve-factor应用提倡将配置存储在环境变量中。任何从开发环境切换到生产环境时需要修改的东西都从代码抽取到环境变量里。 但是在实际开发中,如果同一台机器运行多个项目,设置环境变量容易冲突,不实用。godotenv库从.env文件中读取配置, 然后存储到程序的环境变量中。在代码中可以使用读取非常方便。godotenv源于一个 Ruby 的开源项目dotenv。

快速使用
第三方库需要先安装:

$ go get github.com/joho/godotenv


后使用:

package mainimport (  "fmt"  "log"  "os"  "github.com/joho/godotenv")func main() {  err := godotenv.Load()  if err != nil {    log.Fatal(err)  }  fmt.Println("name: ", os.Getenv("name"))  fmt.Println("age: ", os.Getenv("age"))}


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

name = dj
age = 18

运行程序,输出:

name: dj
age: 18

可见,使用非常方便。默认情况下,godotenv读取项目根目录下的.env文件,文件中使用key = value的格式,每行一个键值对。 调用godotenv.Load()即可加载,可直接调用os.Getenv("key")读取。os.Getenv是用来读取环境变量的:

package mainimport (  "fmt"  "os")func main() {  fmt.Println(os.Getenv("GOPATH"))}


高级特性
自动加载
如果你有程序员的优良传统——懒,你可能连Load方法都不想自己调用。没关系,godotenv给你懒的权力!

导入github.com/joho/godotenv/autoload,配置会自动读取:

package mainimport (  "fmt"  "os"  _ "github.com/joho/godotenv/autoload")func main() {  fmt.Println("name: ", os.Getenv("name"))  fmt.Println("age: ", os.Getenv("age"))}


注意,由于代码中没有显式用到godotenv库,需要使用空导入,即导入时包名前添加一个_。

看autoload包的源码,其实就是库帮你调用了Load方法:

// src/github.com/joho/godotenv/autoload/autoload.gopackage autoload

/*You can just read the .env file on import just by doingimport _ "github.com/joho/godotenv/autoload"And bob's your mother's brother*/import "github.com/joho/godotenv"func init() {  godotenv.Load()}

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...