diff --git a/src/programming/backend/go/Web开发数据库/19Viper配置管理.md b/src/programming/backend/go/Web开发数据库/19Viper配置管理.md index d731cbd..40736ad 100644 --- a/src/programming/backend/go/Web开发数据库/19Viper配置管理.md +++ b/src/programming/backend/go/Web开发数据库/19Viper配置管理.md @@ -260,6 +260,7 @@ import ( func main() { // 1. 设置环境变量前缀 viper.SetEnvPrefix("MYAPP") // 自动添加前缀 + viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_")) // 2. 绑定环境变量 viper.BindEnv("port") // 绑定 MYAPP_PORT diff --git a/src/programming/backend/go/Web开发数据库/21综合实战项目.md b/src/programming/backend/go/Web开发数据库/21综合实战项目.md index c2299a7..7c394e6 100644 --- a/src/programming/backend/go/Web开发数据库/21综合实战项目.md +++ b/src/programming/backend/go/Web开发数据库/21综合实战项目.md @@ -61,14 +61,19 @@ mkdir go-auth-api && cd go-auth-api go mod init go-auth-api # 安装依赖 -go get -u github.com/gin-gonic/gin -go get -u gorm.io/gorm -go get -u gorm.io/driver/sqlite -go get -u github.com/spf13/viper -go get -u go.uber.org/zap -go get -u github.com/golang-jwt/jwt/v4 -go get -u golang.org/x/crypto -go get -u gopkg.in/natefinch/lumberjack.v2 +go get github.com/gin-gonic/gin@v1.10.0 +go get github.com/gin-contrib/sse@v0.1.0 +go get github.com/go-playground/validator/v10@v10.20.0 + +go get gorm.io/gorm@v1.25.7 +go get gorm.io/driver/sqlite@v1.5.6 + +go get github.com/spf13/viper@v1.18.2 +go get github.com/spf13/afero@v1.11.0 + +go get go.uber.org/zap@v1.27.0 +go get golang.org/x/crypto@v0.21.0 + ``` > **版本说明**:代码兼容 Go 1.18+ 版本(建议 1.22+ 体验最佳性能) @@ -491,10 +496,10 @@ func Login(cfg *Config) gin.HandlerFunc { // 获取用户信息 func GetProfile(c *gin.Context) { - userID := c.GetUint("user_id") + userID, _ := c.Get("user_id") var user User - if err := DB.First(&user, userID).Error; err != nil { + if err := DB.First(&user, userID.(uint)).Error; err != nil { c.JSON(404, gin.H{"error": "User not found"}) return } @@ -504,7 +509,7 @@ func GetProfile(c *gin.Context) { // 更新用户信息 func UpdateProfile(c *gin.Context) { - userID := c.GetUint("user_id") + userID, _ := c.Get("user_id") var req struct { Name string `json:"name"` @@ -517,13 +522,13 @@ func UpdateProfile(c *gin.Context) { return } - if err := DB.Model(&User{}).Where("id = ?", userID).Updates(req).Error; err != nil { + if err := DB.Model(&User{}).Where("id = ?", userID.(uint)).Updates(req).Error; err != nil { Logger.Error("Failed to update user", zap.Error(err)) c.JSON(500, gin.H{"error": "Failed to update profile"}) return } - Logger.Info("User profile updated", zap.Uint("user_id", userID)) + Logger.Info("User profile updated", zap.Uint("user_id", userID.(uint))) c.JSON(200, gin.H{"message": "Profile updated successfully"}) } @@ -563,8 +568,8 @@ type Config struct { } `mapstructure:"database"` JWT struct { - Secret int `mapstructure:"secret"` - Expire int `mapstructure:"expire"` + Secret string `mapstructure:"secret"` + Expire int `mapstructure:"expire"` } `mapstructure:"jwt"` Logging struct { @@ -714,7 +719,7 @@ func main() { protected.Use(AuthMiddleware(cfg)) { protected.GET("/profile", GetProfile) - protected.PUT("/profile", UpdateProfile(cfg)) + protected.PUT("/profile", UpdateProfile) } // 启动服务器