serve.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package cmd
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "github.com/runningwater/gohub/bootstrap"
  5. "github.com/runningwater/gohub/pkg/config"
  6. "github.com/runningwater/gohub/pkg/console"
  7. "github.com/runningwater/gohub/pkg/logger"
  8. "github.com/spf13/cobra"
  9. )
  10. var CmdServe = &cobra.Command{
  11. Use: "serve",
  12. Short: "Start web server",
  13. Long: "Start the server - Gin server",
  14. Run: runWeb,
  15. Args: cobra.NoArgs,
  16. }
  17. func runWeb(cmd *cobra.Command, args []string) {
  18. // 设置 gin 的运行模式, 支持 debug, release, test
  19. // release 模式会屏蔽调试信息,官方建议生产环境中使用
  20. // 非 release 模式 gin 终端打印太多信息,干扰到我们程序中的 Log
  21. // 故此设置为 release 模式
  22. gin.SetMode(gin.ReleaseMode)
  23. // gin 框架初始化
  24. router := gin.New()
  25. // 初始化路由绑定
  26. bootstrap.SetupRoute(router)
  27. // 运行服务
  28. err := router.Run(":" + config.Get("app.port"))
  29. if err != nil {
  30. logger.ErrorString("CMD", "serve", err.Error())
  31. console.Exit("Unable to start server, error:" + err.Error())
  32. }
  33. }