1 回答

TA貢獻1824條經驗 獲得超8個贊
根據@Inian的建議,我實現了以下解決方案,該解決方案也列在godotenv包的選項卡上。Issues
在 config.go 中,我為目錄名稱添加了一個常量(在我的情況下就是這樣)。我添加了一個函數,該函數嘗試根據項目名稱和當前工作目錄動態獲取項目的根路徑。rest-apiloadEnv
const projectDirName = "rest-api" // change to relevant project name
func loadEnv() {
projectName := regexp.MustCompile(`^(.*` + projectDirName + `)`)
currentWorkDirectory, _ := os.Getwd()
rootPath := projectName.Find([]byte(currentWorkDirectory))
err := godotenv.Load(string(rootPath) + `/.env`)
if err != nil {
log.Fatalf("Error loading .env file")
}
}
func GetConfig() *Config {
loadEnv()
dbHost := os.Getenv("DB_HOST")
dbPort := os.Getenv("DB_PORT")
dbName := os.Getenv("DB_DATABASE")
dbUsername := os.Getenv("DB_USERNAME")
dbPassword := os.Getenv("DB_PASSWORD")
return &Config{
DB: &DBConfig{
Connection: "mysql",
Host: dbHost,
Port: dbPort,
Username: dbUsername,
Password: dbPassword,
Name: dbName,
Charset: "utf8",
},
}
}
- 1 回答
- 0 關注
- 117 瀏覽
添加回答
舉報