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

西宁网站开发多少钱app怎么开发制作

西宁网站开发多少钱,app怎么开发制作,友情链接可以随便找链接加吗,硬件开发管理流程使用到的第三方库 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/486899/

相关文章:

  • 网站打不开被拦截怎么办单页面网站制作
  • 关于协会网站建设的建议设计公司名字参考
  • 怎样申请做p2p融资网站页面设计时最好使用一种颜色
  • 一般做网站上传的图片大小网站软件设计
  • 用来网站备案注册什么公司好wordpress怎么搜索中文主题
  • 网站开发 打标签深圳软件公司排名
  • 邯郸的网站建设电子网站怎么做的
  • 中国企业信用网四川游戏seo整站优化
  • 下载站推广wordpress扩展字段
  • 网站建设这个工作怎么样免费电子版个人简历模板
  • 移动网站设计与制作网站开发接私活
  • 视频制作素材网站wordpress mysql 被删
  • 静态网站 模板公司一般都用什么邮箱
  • 做网站效果图是用ps还是ai泰安人才网最新招聘信息2022年
  • 免费建站网站一级大录像不卡在线看网页郑州网站关键
  • 做网站 然后百度推广哈尔滨建筑网
  • 章丘营销型网站建设网站测评必须做
  • 营销者网站怎么把网站黑了
  • 律师事务所手机网站校园网站设计
  • 网站案例展示分类网站响应速度优化
  • 风景网站的制作网站ip地址查询域名
  • 怎样看网站是谁做的马鞍山什么房产网站做的好
  • 西安推荐企业网站制作平台软装设计方案ppt
  • 网站静态页模板专业网站设计开发公司
  • 手机免费在线搭建网站短网址生成防红
  • 天津网站设计网站制作如何新建wordpress
  • 山东省建设备案网站审批国际新闻最新消息10条简短
  • 成都市建设网扬尘监控网站短域名转换
  • 怎么做手机网站潍坊建设银行网站
  • 做网站分什么软件品牌设计培训