| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 | package mainimport (	_ "ERP_ams/Nats"	"ERP_ams/conf"	"ERP_ams/logs"	_ "ERP_ams/models/Account"	_ "ERP_ams/routers"	"fmt"	"github.com/beego/beego/v2/adapter/orm"	beego "github.com/beego/beego/v2/server/web"	"github.com/beego/beego/v2/server/web/context"	"github.com/beego/beego/v2/server/web/filter/cors"	_ "github.com/go-sql-driver/mysql"	"runtime"	"strconv")func init() {	fmt.Println(runtime.GOOS)	orm.RegisterDriver("mysql", orm.DRMySQL)	//orm.RegisterDataBase("default", "mysql", "zdxq:7e5853d9178edfcc@tcp(47.108.133.234:3306)/zdxq?charset=utf8",100,200)	orm.RegisterDataBase("default", "mysql",		conf.MysqlServer_Username+":"+conf.MysqlServer_Password+"@tcp("+conf.MysqlServer_UrlPort+")/"+conf.MysqlServer_Database+"?charset=utf8mb4&loc=Asia%2FShanghai&parseTime=True",		conf.MysqlServer_MaxIdleConnections, conf.MysqlServer_MaxOpenConnections)	orm.RunSyncdb("default", false, false) // 创建数据库}func main() {	HTTPPort, _ := beego.AppConfig.String("HTTPPort")	HTTPPort_int, _ := strconv.Atoi(HTTPPort)	beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{		// 允许访问所有源		AllowAllOrigins: true,		// 可选参数"GET", "POST", "PUT", "DELETE", "OPTIONS" (*为所有)		AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},		// 指的是允许的Header的种类		AllowHeaders: []string{"Origin", "Authorization", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},		// 公开的HTTP标头列表		ExposeHeaders: []string{"Content-Length", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},		// 如果设置,则允许共享身份验证凭据,例如cookie		AllowCredentials: true,	}))	appname, _ := beego.AppConfig.String("appname")	beego.BConfig.AppName = appname              // 项目名	beego.BConfig.ServerName = appname           //server  名称	beego.BConfig.RunMode = conf.RunMode         //  应用的运行模式	beego.BConfig.Listen.HTTPPort = HTTPPort_int //监听端口  本地:8518  线上:8528	beego.BConfig.WebConfig.AutoRender = false	beego.BConfig.RecoverPanic = true	beego.BConfig.RecoverFunc = RecoverPanic	beego.Run()}func RecoverPanic(ctx *context.Context, config *beego.Config) {	if err := recover(); err != nil {		ctx.ResponseWriter.Header().Set("Access-Control-Allow-Origin", ctx.Request.Header.Get("Origin"))		var stack []string		for i := 1; ; i++ {			_, file, line, ok := runtime.Caller(i)			if !ok {				break			}			logs.Error(fmt.Sprintf("%s:%d", file, line))			stack = append(stack, fmt.Sprintln(fmt.Sprintf("%s:%d", file, line)))		}		//显示错误		data := map[string]interface{}{			"AppError": fmt.Sprintf("%v", err),			"Code":     500,			"Msg":      "请稍后重试!",		}		if conf.RunMode == "dev" {			data["RequestMethod"] = ctx.Input.Method()			data["RequestURL"] = ctx.Input.URI()			data["RemoteAddr"] = ctx.Input.IP()			data["Stack"] = stack			data["GoVersion"] = runtime.Version()		}		_ = ctx.Output.JSON(data, true, true)		//if ctx.Output.Status != 0 {		//	ctx.ResponseWriter.WriteHeader(ctx.Output.Status)		//} else {		//	ctx.ResponseWriter.WriteHeader(500)		//}	}}
 |