Using Environment Variables across files - GOPATH

和自甴很熟 提交于 2019-12-25 19:31:24

问题


This is my first time coding in Go without using GOPATH.
I have a go.mod file.
I'm attempting to send an email through Sendgrid; I have a file which contains my SENDGRID_API_KEY called sendgrid.env.
When trying to use the key within my main.go file, the value isn't being pulled through.

fmt.Println(os.LookupEnv("SENDGRID_API_KEY")) // empty string 
fmt.Println(os.Getenv("SENDGRID_API_KEY")) // empty string

I've also used 'LookupEnv' which returns false.
Any help would be appreciated.


回答1:


os.Getenv() and os.LookupEnv() do not check files. If your env vars are in files, you have to load them yourself. Or use a 3rd party lib that does that for you, e.g. github.com/joho/godotenv, which would look like this:

if err := godotenv.Load("sendgrid.env"); err != nil {
    log.Fatal("Error loading sendgrid.env file")
}

Another option is to export the env vars before launching your app, e.g.:

export SENDGRID_API_KEY=mykey
./mygoapp

Or in one line:

SENDGRID_API_KEY=mykey ./mygoapp

Or if you have the env vars in a file, you may use the source command:

source sendgrid.env
./mygoapp


来源:https://stackoverflow.com/questions/59411316/using-environment-variables-across-files-gopath

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!