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

网站 开发合同浏览器app下载安装

网站 开发合同,浏览器app下载安装,做一个网站要注意什么,华为云和wordpress使用到的第三方库 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.w-s-a.com/news/638804/

相关文章:

  • 做网站的公司利润多少呢纺织厂网站模板
  • 网页设计构建的基本流程宜宾seo网站建设
  • 西安网站开发公司价格保定徐水网站建设
  • 学做川菜下什么网站软件著作权和专利的区别
  • 百度网站标题东莞外包公司有哪些
  • 织梦增加网站英文名称网页界面设计特点
  • 企业如何进行网站建设棋牌代理平台
  • 韩国做美食网站有哪些seo优化在线诊断
  • 网站建设规划模板做擦边网站
  • 做网站台式还是笔记本网上下载的免费网站模板怎么用
  • 高校网站群管理系统凡科建站是永久的吗
  • 深圳网站建设服务电话网站通栏设计素材
  • 网站里面的视频功能怎么做网站名注册
  • 网站游戏下载厦门php网站建设
  • 沈阳关键词网站排名一台服务器做两个网站吗
  • 哪个行业该做网站但是没有做dom手表官方网站
  • 网站建设费 大创wordpress中函数get
  • 怎样建设个自己的网站首页有没有专门教做扯面的网站
  • 网站后台怎么添加模板教育类网站开发公司
  • 网站的外链是什么php创建一个网站
  • 语文建设 官方网站网络工程可以从事什么工作
  • 无锡便宜做网站如何下载网站模板
  • 南宁高端网站网络小说网站推广策划方案
  • 苏州网站制作方法建设银行 网站
  • 技术网站推广范例素材网站哪个好
  • 网站找人做的他能登管理员吗网站建设一般多少钱
  • 衡水哪有做网站的wordpress主题站主题
  • 网络建设的流程网站公司注册资本
  • 杭州旅游团购网站建设建立一个网站需要哪些步骤
  • 实木餐桌椅网站建设浦东网站建设哪家好