这是我第一次在不使用 GOPATH 的情况下使用 Go 进行编码。
我有一个 go.mod
文件。
我正在尝试通过 Sendgrid 发送电子邮件;我有一个包含我的 SENDGRID_API_KEY 的文件,名为 sendgrid.env
.
尝试使用我的 main.go
中的 key 时文件,该值没有被拉出。
fmt.Println(os.LookupEnv("SENDGRID_API_KEY")) // empty string
fmt.Println(os.Getenv("SENDGRID_API_KEY")) // empty string
我还使用了返回 false 的“LookupEnv”。
任何帮助,将不胜感激。
最佳答案
os.Getenv()
和 os.LookupEnv()
不检查文件。如果您的环境变量在文件中,您必须自己加载它们。或使用为您执行此操作的 3rd 方库,例如 github.com/joho/godotenv
,看起来像这样:
if err := godotenv.Load("sendgrid.env"); err != nil {
log.Fatal("Error loading sendgrid.env file")
}
另一种选择是在启动您的应用程序之前导出环境变量,例如:
export SENDGRID_API_KEY=mykey
./mygoapp
或者在一行中:
SENDGRID_API_KEY=mykey ./mygoapp
或者,如果您在文件中有环境变量,您可以使用
source
命令:source sendgrid.env
./mygoapp
关于go - 跨文件使用环境变量 - GOPATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59411316/