Go 从.env文件中获取值
你好,我没有得到价值从我的go项目中的.env文件中,有人可以帮助我吗 .env:Go 从.env文件中获取值,go,Go,你好,我没有得到价值从我的go项目中的.env文件中,有人可以帮助我吗 .env: API_PORT=8080 DB_HOST=db DB_DRIVER=postgres DB_USER=go DB_PASSWORD=root DB_NAME=go123 DB_PORT=5432 func getURI() string { fmt.Println("port:", os.Getenv("go123"), os.Ge
API_PORT=8080
DB_HOST=db
DB_DRIVER=postgres
DB_USER=go
DB_PASSWORD=root
DB_NAME=go123
DB_PORT=5432
func getURI() string {
fmt.Println("port:", os.Getenv("go123"), os.Getenv("DB_HOST"))
dbPort, err := strconv.Atoi(os.Getenv("DB_PORT"))
fmt.Println(dbPort)
if err != nil {
log.Println("error on load db port from env:", err.Error())
dbPort = 5432
}
return fmt.Sprintf(os.Getenv("DB_HOST"),
dbPort,
os.Getenv("DB_USER"),
os.Getenv("DB_NAME"),
os.Getenv("DB_PASSWORD"))
}
db:
API_PORT=8080
DB_HOST=db
DB_DRIVER=postgres
DB_USER=go
DB_PASSWORD=root
DB_NAME=go123
DB_PORT=5432
func getURI() string {
fmt.Println("port:", os.Getenv("go123"), os.Getenv("DB_HOST"))
dbPort, err := strconv.Atoi(os.Getenv("DB_PORT"))
fmt.Println(dbPort)
if err != nil {
log.Println("error on load db port from env:", err.Error())
dbPort = 5432
}
return fmt.Sprintf(os.Getenv("DB_HOST"),
dbPort,
os.Getenv("DB_USER"),
os.Getenv("DB_NAME"),
os.Getenv("DB_PASSWORD"))
}
错误:
API_PORT=8080
DB_HOST=db
DB_DRIVER=postgres
DB_USER=go
DB_PASSWORD=root
DB_NAME=go123
DB_PORT=5432
func getURI() string {
fmt.Println("port:", os.Getenv("go123"), os.Getenv("DB_HOST"))
dbPort, err := strconv.Atoi(os.Getenv("DB_PORT"))
fmt.Println(dbPort)
if err != nil {
log.Println("error on load db port from env:", err.Error())
dbPort = 5432
}
return fmt.Sprintf(os.Getenv("DB_HOST"),
dbPort,
os.Getenv("DB_USER"),
os.Getenv("DB_NAME"),
os.Getenv("DB_PASSWORD"))
}
2021/04/24 21:02:12环境:strconv.Atoi加载数据库端口出错:
正在分析“”:无效语法2021/04/24 21:02:12无法连接到
host=/var/run/postgresql user=gbcdev数据库=
:拨号错误(拨号
unix/var/run/postgresql/.s.PGSQL.5432:connect:没有这样的文件或
目录)
与我的postgres的连接是正常的,但是我的环境总是空的
我忘记了什么?看起来您正在使用模块,但忘记了先调用Load方法
导入(
“github.com/joho/godotenv”
“操作系统”
)
func getURI()字符串{
错误:=godotenv.Load()
如果错误!=零{
log.Fatal(“加载.env文件时出错”)
}
//现在您可以使用os.Getenv。。。
}
您需要在启动时以某种方式加载/解析此.env文件。也许可以使用类似于为什么不使用embed
+json.Parse
?