main.go 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package main
  2. import (
  3. _ "Cold_Api/Nats"
  4. "Cold_Api/conf"
  5. "Cold_Api/controllers"
  6. "Cold_Api/models/Device"
  7. "Cold_Api/models/Product"
  8. "Cold_Api/models/Warning"
  9. "Cold_Api/routers"
  10. _ "Cold_Api/routers"
  11. "fmt"
  12. "github.com/beego/beego/v2/adapter/orm"
  13. beego "github.com/beego/beego/v2/server/web"
  14. "github.com/beego/beego/v2/server/web/filter/cors"
  15. _ "github.com/go-sql-driver/mysql"
  16. "runtime"
  17. "strconv"
  18. )
  19. func init() {
  20. //lib.WritePid()
  21. fmt.Println(runtime.GOOS)
  22. orm.RegisterDriver("mysql", orm.DRMySQL)
  23. //orm.RegisterDataBase("default", "mysql", "zdxq:7e5853d9178edfcc@tcp(47.108.133.234:3306)/zdxq?charset=utf8",100,200)
  24. orm.RegisterDataBase("default", "mysql",
  25. conf.MysqlServer_Username+":"+conf.MysqlServer_Password+"@tcp("+conf.MysqlServer_UrlPort+")/"+conf.MysqlServer_Database+"?charset=utf8mb4&loc=Local&parseTime=True",
  26. conf.MysqlServer_MaxIdleConnections, conf.MysqlServer_MaxOpenConnections)
  27. orm.RunSyncdb("default", false, false) // 创建数据库
  28. println(conf.MysqlServer_Username + ":" + conf.MysqlServer_Password + "@tcp(" + conf.MysqlServer_UrlPort + ")/" + conf.MysqlServer_Database + "?charset=utf8mb4&loc=Local&parseTime=True")
  29. }
  30. func main() {
  31. HTTPPort_int, _ := strconv.Atoi(conf.HTTPPort)
  32. beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{
  33. // 允许访问所有源
  34. AllowAllOrigins: true,
  35. // 可选参数"GET", "POST", "PUT", "DELETE", "OPTIONS" (*为所有)
  36. AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
  37. // 指的是允许的Header的种类
  38. AllowHeaders: []string{"Origin", "Authorization", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type", "T_pid"},
  39. // 公开的HTTP标头列表
  40. ExposeHeaders: []string{"Content-Length", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Access-Control-Allow-Headers", "Content-Type"},
  41. // 如果设置,则允许共享身份验证凭据,例如cookie
  42. AllowCredentials: true,
  43. }))
  44. beego.ErrorController(&controllers.ErrorController{})
  45. //过滤器,拦截所有请求
  46. beego.InsertFilter("/*", beego.BeforeRouter, routers.RBACFilter)
  47. beego.BConfig.AppName = conf.AppName // 项目名
  48. beego.BConfig.ServerName = conf.AppName + conf.HTTPPort //server 名称
  49. beego.BConfig.RunMode = conf.RunMode // 应用的运行模式
  50. beego.BConfig.Listen.HTTPPort = HTTPPort_int //监听端口 本地:8518 线上:8528
  51. beego.BConfig.WebConfig.AutoRender = false
  52. go controllers.DeviceRealTime() // 实时 数据
  53. go Warning.Read_WarningType_All_Maps() // 初始化报警类型
  54. go Product.Read_ProductType_All_Map() // 初始化产品类型
  55. go Device.Read_DeviceSensorTypeAll_Map() // 初始化传感器类型
  56. fmt.Println("======= beego.Run ======")
  57. beego.Run()
  58. }