backend.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package backend
  2. import (
  3. "fmt"
  4. "github.com/allanpk716/ChineseSubFinder/frontend/dist"
  5. "github.com/allanpk716/ChineseSubFinder/internal/backend/routers"
  6. "github.com/allanpk716/ChineseSubFinder/internal/logic/cron_helper"
  7. "github.com/allanpk716/ChineseSubFinder/internal/pkg/log_helper"
  8. "github.com/gin-contrib/cors"
  9. "github.com/gin-gonic/gin"
  10. "net/http"
  11. )
  12. // StartBackEnd 开启后端的服务器
  13. func StartBackEnd(httpPort int, cronHelper *cron_helper.CronHelper) {
  14. engine := gin.Default()
  15. // 默认所有都通过
  16. engine.Use(cors.Default())
  17. routers.InitRouter(engine, cronHelper)
  18. engine.GET("/", func(c *gin.Context) {
  19. c.Header("content-type", "text/html;charset=utf-8")
  20. c.String(http.StatusOK, string(dist.SpaIndexHtml))
  21. })
  22. engine.StaticFS(dist.SpaFolderJS, dist.Assets(dist.SpaFolderName+dist.SpaFolderJS, dist.SpaJS))
  23. engine.StaticFS(dist.SpaFolderCSS, dist.Assets(dist.SpaFolderName+dist.SpaFolderCSS, dist.SpaCSS))
  24. engine.StaticFS(dist.SpaFolderFonts, dist.Assets(dist.SpaFolderName+dist.SpaFolderFonts, dist.SpaFonts))
  25. engine.StaticFS(dist.SpaFolderIcons, dist.Assets(dist.SpaFolderName+dist.SpaFolderIcons, dist.SpaIcons))
  26. engine.StaticFS(dist.SpaFolderImages, dist.Assets(dist.SpaFolderName+dist.SpaFolderImages, dist.SpaImages))
  27. engine.Any("/api", func(c *gin.Context) {
  28. c.Redirect(http.StatusMovedPermanently, "/")
  29. })
  30. // listen and serve on 0.0.0.0:8080(default)
  31. log_helper.GetLogger().Infoln("Try Start Server At Port", httpPort)
  32. err := engine.Run(":" + fmt.Sprintf("%d", httpPort))
  33. if err != nil {
  34. log_helper.GetLogger().Errorln("Start Server At Port", httpPort, "Error", err)
  35. }
  36. }