backend.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. "io/ioutil"
  11. "net/http"
  12. )
  13. // StartBackEnd 开启后端的服务器
  14. func StartBackEnd(httpPort int, cronHelper *cron_helper.CronHelper) {
  15. gin.SetMode(gin.ReleaseMode)
  16. gin.DefaultWriter = ioutil.Discard
  17. engine := gin.Default()
  18. // 默认所有都通过
  19. engine.Use(cors.Default())
  20. routers.InitRouter(engine, cronHelper)
  21. engine.GET("/", func(c *gin.Context) {
  22. c.Header("content-type", "text/html;charset=utf-8")
  23. c.String(http.StatusOK, string(dist.SpaIndexHtml))
  24. })
  25. engine.StaticFS(dist.SpaFolderJS, dist.Assets(dist.SpaFolderName+dist.SpaFolderJS, dist.SpaJS))
  26. engine.StaticFS(dist.SpaFolderCSS, dist.Assets(dist.SpaFolderName+dist.SpaFolderCSS, dist.SpaCSS))
  27. engine.StaticFS(dist.SpaFolderFonts, dist.Assets(dist.SpaFolderName+dist.SpaFolderFonts, dist.SpaFonts))
  28. engine.StaticFS(dist.SpaFolderIcons, dist.Assets(dist.SpaFolderName+dist.SpaFolderIcons, dist.SpaIcons))
  29. engine.StaticFS(dist.SpaFolderImages, dist.Assets(dist.SpaFolderName+dist.SpaFolderImages, dist.SpaImages))
  30. engine.Any("/api", func(c *gin.Context) {
  31. c.Redirect(http.StatusMovedPermanently, "/")
  32. })
  33. // listen and serve on 0.0.0.0:8080(default)
  34. log_helper.GetLogger().Infoln("Try Start Server At Port", httpPort)
  35. err := engine.Run(":" + fmt.Sprintf("%d", httpPort))
  36. if err != nil {
  37. log_helper.GetLogger().Errorln("Start Server At Port", httpPort, "Error", err)
  38. }
  39. }