package main import ( "apiServer_service/utils/logger" "apiServer_service/utils/nacos" "fmt" "os" "os/signal" "syscall" "github.com/cloudwego/hertz/pkg/app/server" "github.com/joho/godotenv" ) func init() { if err := godotenv.Load(".env"); err != nil { fmt.Println("Warning: .env file not found, using system environment variables") } } func main() { host := os.Getenv("HOST") port := os.Getenv("PORT") if host == "" || port == "" { logger.Fatal("Config", "HOST 和 PORT 环境变量必须设置") } h := server.Default( server.WithHostPorts(host+":"+port), server.WithExitWaitTime(0), ) SetupRoutes(h) if os.Getenv("NACOS_SERVICE_NAME") != "" { if err := nacos.RegisterService(); err != nil { logger.Warn("Nacos", "服务注册失败: ", err) } else { logger.Info("Nacos", "服务注册成功") } } go func() { h.Spin() }() logger.Info("Server", fmt.Sprintf("服务启动于 %s:%s", host, port)) quit := make(chan os.Signal, 1) signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM) <-quit logger.Info("Server", "正在关闭服务...") if err := h.Close(); err != nil { logger.Error("Server", "关闭失败: ", err) } logger.Info("Server", "服务已停止") }