当前位置: 首页 > news >正文

免费网页奖励自己游戏网站凡客app官网

免费网页奖励自己游戏网站,凡客app官网,百度收录网址提交,自己怎么制作logo使用到的第三方库 gin Gin 框架viper 配置文件管理cors 跨域资源请求配置gorm ORM 库zap 日志记录 main 包 Go 语言程序的入口点 main.go 文件 使用 flag 读取配置文件路径参数#xff0c;默认当前目录下使用 viper 读取 config.ini 配置文件初始化初始数据初始化随机数种子初… 使用到的第三方库 gin Gin 框架viper 配置文件管理cors 跨域资源请求配置gorm ORM 库zap 日志记录 main 包 Go 语言程序的入口点 main.go 文件 使用 flag 读取配置文件路径参数默认当前目录下使用 viper 读取 config.ini 配置文件初始化初始数据初始化随机数种子初始化数据库声明启动程序模式配置启动参数并启动服务 package mainimport (flaglogmath/randproject/daoproject/routerstimegithub.com/gin-gonic/gingithub.com/spf13/viper )var (ServiceHost stringServicePort string )func init() {var configPath stringflag.StringVar(configPath, config-path, ., path to config file)flag.Parse()viper.SetConfigName(config) // 设置配置文件名为“config”viper.SetConfigType(ini) // 设置配置文件类型为“ini”viper.AddConfigPath(configPath) // 设置在configPath中查找配置文件if err : viper.ReadInConfig(); err ! nil {if _, ok : err.(viper.ConfigFileNotFoundError); ok {// Config file not found; ignore error if desiredlog.Panic(没有找到配置文件)} else {// Config file was found but another error was producedlog.Panic(初始化配置出错, err.Error())}}ServiceHost viper.GetString(service.host)ServicePort viper.GetString(service.port)dao.DatabaseUser viper.GetString(database.user)dao.DatabasePwd viper.GetString(database.pwd)dao.DatabaseHost viper.GetString(database.host)dao.DatabasePort viper.GetString(database.port)dao.DatabaseName viper.GetString(database.name) } func main() {rand.Seed(time.Now().Unix())mode : releaseerr : dao.InitMySQL()if err ! nil {log.Println(初始化数据失败, err.Error())return}switch mode {case debug:gin.SetMode(gin.DebugMode)case release:gin.SetMode(gin.ReleaseMode)case test:gin.SetMode(gin.TestMode)}r : routers.SetupRouter()s : http.Server{Addr: ServiceHost : ServicePort,Handler: r,ReadTimeout: 5 * time.Second,WriteTimeout: 10 * time.Second,}err s.ListenAndServe()if err ! nil {panic(err)} }dao 包 通常被用于数据存储层的实现可将底层数据库访问操作封装隐藏细节以简化数据库操作 mysql.go 文件 使用 gorm 初始化 MySQL 数据库连接 package daoimport (fmtloggorm.io/driver/mysqlgorm.io/gorm )var (Db *gorm.DBDatabaseUser stringDatabasePwd stringDatabaseHost stringDatabasePort stringDatabaseName string )func InitMySQL() (err error) {dsn : fmt.Sprintf(%v:%vtcp(%v:%v)/%v?charsetutf8mb4parseTimeTruelocLocal,DatabaseUser, DatabasePwd, DatabaseHost, DatabasePort, DatabaseName)Db, err gorm.Open(mysql.Open(dsn), gorm.Config{})if err ! nil {log.Panic(连接数据库失败, err.Error())}// 测试数据库连接err Db.Exec(SELECT 1).Errorif err ! nil {log.Panic(数据库连接失败, err.Error())}return }routers 包 通常用于路由器配置这个包中包含的代码需要读取 HTTP 请求并将该请求发送到相应后端的处理程序然后从处理程序获取响应 routers.go 文件 创建日志记录器初始化 gin 引擎配置 cors 跨域请求设置一个默认路由及无请求到路由时返回的数据 package routersimport (net/httpproject/controllergithub.com/gin-contrib/corsgithub.com/gin-gonic/gingo.uber.org/zap )func SetupRouter() *gin.Engine {// 创建一个生产级别的日志记录器logger, err : zap.NewProduction()if err ! nil {panic(err)}// 在函数结束后刷新缓冲区defer logger.Sync()r : gin.Default()// 将 logger 存储在 Gin 的中间件中r.Use(func(c *gin.Context) {c.Set(logger, logger)c.Next()})r.Use(cors.New(cors.Config{AllowOrigins: []string{*},AllowMethods: []string{POST, GET, PUT, DELETE, OPTIONS},AllowHeaders: []string{Content-Type, Content-Length},ExposeHeaders: []string{Access-Control-Allow-Headers},AllowCredentials: true,}))r.GET(/first, controller.FirstHandler)// 下面有两个配置// 如果将前端服务与后端服务同时启动可以设置第一种将前端打包的文件放到 public 文件夹内// 我这里设置的使用 vite 打包所以就下面这种设置可以自行更改// 当直接访问的时候就相当于请求/路由就会访问 index.html 页面// 设置静态文件服务目录r.Static(public, public)r.Static(assets, public/assets)r.GET(/, func(c *gin.Context) {c.File(public/index.html)})r.NoRoute(func(c *gin.Context) {c.File(public/index.html)})// 如果前后端分离模式可以设置为请求到没有的路由就返回 Not Foundr.NoRoute(func(c *gin.Context) {c.JSON(http.StatusNotFound, gin.H{msg: Not Found,})})return r }controller 包 负责维护业务逻辑的实现同时调用 Dao 对象实现数据存储、检索等功能通常与用户交互并处理相关活动 controller.go 文件 创建初始默认路由函数使用 info 级别的日志记录并返回数据 package controllerimport (net/httpgithub.com/gin-gonic/gingo.uber.org/zap )func FirstHandler(c *gin.Context) {c.MustGet(logger).(*zap.Logger).Info(这是一个Info日志)c.JSON(http.StatusOK, gin.H{code: 1,data: Hello World,msg: 成功,}) }config.ini 文件 外部配置文件 [service] host127.0.0.1 port8000 [database] userroot pwd123456 host127.0.0.1 port3306 namedatabasenamebuild.bat 文件 打包脚本不用每次修改环境变量不用手动输入打包命令 脚本内容修改环境变量为 arm64 架构 Linux 系统打包还原为 amd64 架构 Windows 系统我这里使用 Windows 做开发需要部署到 arm64 架构的 Linux 服务器上所以这样写根据需要自行更改 echo offgo env -w CGO_ENABLED0 go env -w GOOSlinux go env -w GOARCHarm64 go build -ldflags -w -s go env -w CGO_ENABLED1 go env -w GOOSwindows go env -w GOARCHamd64
http://www.hkea.cn/news/14258276/

相关文章:

  • 超级网站建设温州做网站公司哪家好
  • 国内优秀网页网站百度收录网站多久
  • 网站开发技术方案doc网站建设网络推广文章
  • 东莞 科技 公司 网站建设中国建设银行的网站
  • 河南企业网站建设公司成都网站建设平台
  • 自学网站开发要多久如果评价网站做的好不好
  • 上海工厂网站建设深圳比较好的vi设计公司
  • 海南做网站的图片搜集网站怎么做
  • 网站建设需求流程图广西外贸app
  • 网站制作价格公司素材免费下载素材库
  • 工业设计网站知乎东莞智通人才网登录
  • 秦皇岛建设路小学网站怎么样做网站代理商
  • 流量宝做网站流量山东建设厅官方网站李兴军
  • 成都网站seo报价无锡百度正规推广
  • 兰山区网站建设推广wordpress查看访问量
  • 没有相应营业执照怎么做网站淘客网站 wordpress
  • 阿里网站年费续费怎么做分录十堰秦楚网手机版下载
  • 黑色网站模板wordpress模板在哪里买
  • 安卓商城网站开发wordpress代码编辑插件下载
  • 企业网站找谁做好电子商务seo是指什么意思
  • 建设公司网站怎么弄网站建设答辩ppt模板
  • 泰安市网站建设怎么挑选网站建设公司
  • 炫酷网站建设wordpress 4.8 zh cn
  • 网站空间可以换吗新乡seo顾问
  • 镇江电子商务网站建设常州外贸人才网
  • 网站建设资金预算wordpress如何访问量
  • 成都公司建网站建站塔山双喜
  • 东台网站建设找哪家好外贸google推广
  • 宁波网站建设选择荣胜网络wordpress 地区插件
  • 网站建设和推广话术6山东济宁