Loading... 为了方便部署,我将数据库连接、jwt key和配置开发/部署 #### 数据结构 首先我设计了Config的数据结构,用于读取环境配置文件。这里我使用了`github.com/joho/godotenv`包来进行导入。 ```go type Config struct { JWTSecret string DBHost string DBPort int DBUser string DBPassword string DBName string Port string Environment string CORSOrigins []string } ``` #### 读取配置文件 之后试图读取配置文件,如果没有的话就使用环境变量,还没有的话就使用开发时的默认值。 ```go err := godotenv.Load() if err != nil { log.Println("警告: 无法加载 .env 文件,使用默认配置或环境变量") } ``` `godotenv.Load()`指令可以把目录下的.env文件存储到环境变量中,这样后续的`os.Getenv()`就可以读取到文件中设置的环境变量。 为了防止文件读取错误导致的报错,设计了一个函数来使未读取到文件时使用默认值。 ```go func getEnv(key, defaultValue string) string { value := os.Getenv(key) if value == "" { return defaultValue } return value } ``` 之后就可以把文件写入配置文件了 ```go AppConfig = &Config{ JWTSecret: getEnv("JWT_SECRET", "default-secret-key"), DBHost: getEnv("DB_HOST", "localhost"), DBPort: dbPort, DBUser: getEnv("DB_USER", "root"), DBPassword: getEnv("DB_PASSWORD", ""), DBName: getEnv("DB_NAME", "fastlogin"), Port: getEnv("PORT", "3000"), Environment: getEnv("ENV", "development"), CORSOrigins: corsOrigins, } ``` 写入后,就可以使用`AppConfig.项目`来获取到设置,十分方便。 最后修改:2025 年 08 月 09 日 © 允许规范转载 赞 不用打赏哦!