Golang Go语言中关于 godotenv 的求助
我在 main 函数调用了 godotenv.Load(),但是在其他包里使用时如果不把 os.Getenv 放在函数里,直接在函数外运行,就会获取不到环境变量,大概是因为 godotenv 还没把变量读进去吧,这个情况下应该怎么写呢?必须写一个函数 return 这些环境变量吗?
Golang Go语言中关于 godotenv 的求助
你自己就有答案了不是吗
把 os.Getenv 放到函数里就行了
更多关于Golang Go语言中关于 godotenv 的求助的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
func init() {
godotenv.Load()
}
搜索 golang init 函数
几个函数都用一个环境变量,不想每个函数里面都拿一次嘛
是每个 package 里都写一次 load 吗?
那你可以写个结构体,在 main()里获取 env 后赋值给它,然后把函数都写成它的 method
了解一下 init 函数
比较简单&勉强算好维护的办法
package config
func init() { LOAD_YOUR_CONFIG() }
func Get(string) string { … }
一般都是将 env 读取出来,覆盖配置文件的值,然后保存到配置结构体中,后续只需要读取配置参数
常量和 init 不保证初始化顺序的,还是别这么搞比较好
import _ "github.com/joho/godotenv/autoload"
用这个,最好结合 7 楼的做法
pkg 里面确实麻烦,可以用我这个库
https://github.com/ysmood/dotenv
关于您在Go语言中使用godotenv库的求助,我很乐意提供一些帮助。
godotenv是一个非常实用的Go库,它允许你从.env
文件中加载环境变量到你的应用程序中。这在开发过程中特别有用,因为它允许你将配置与代码分离,从而更容易管理和修改。
首先,你需要确保你的项目中已经安装了godotenv库。你可以通过运行以下命令来安装它:
go get github.com/joho/godotenv
安装完成后,你可以在你的Go代码中这样使用它:
package main
import (
"fmt"
"github.com/joho/godotenv"
"os"
)
func main() {
err := godotenv.Load()
if err != nil {
fmt.Println("Error loading .env file")
os.Exit(1)
}
// 现在你可以像访问普通环境变量一样访问.env文件中的变量了
dbHost := os.Getenv("DB_HOST")
fmt.Println("Database Host:", dbHost)
}
确保你的项目根目录下有一个.env
文件,并且里面包含了你要加载的环境变量,例如:
DB_HOST=localhost
DB_PORT=3306
如果你遇到了任何具体的问题,比如加载文件失败、变量未正确解析等,请确保.env
文件的路径正确,并且文件中的格式没有错误(例如,没有多余的空格或缺少等号)。
希望这些信息能帮到你!如果还有其他问题,请随时提问。