登录
首页 >  Golang >  Go问答

在不同文件中共享环境变量 - GOPATH

来源:stackoverflow

时间:2024-03-11 10:06:26 180浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《在不同文件中共享环境变量 - GOPATH》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

问题内容

这是我第一次在不使用 gopath 的情况下使用 go 进行编码。

我有一个 go.mod 文件。

我正在尝试通过 sendgrid 发送电子邮件;我有一个包含我的 sendgrid_api_key 的文件,名为 sendgrid.env

当尝试使用我的 main.go 文件中的密钥时,该值未被提取。

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

我还使用了返回 false 的“lookupenv”。

任何帮助,将不胜感激。


解决方案


os.Getenv()os.LookupEnv() 不检查文件。如果您的环境变量位于文件中,您必须自己加载它们。或者使用第三方库来为您做到这一点,例如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

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>