封装方式一、将 model 和 handle 以及中间层放在不同的包中
@H_466_0@mainrouter.GET("/new",articles.New) router.GET("/articles/:_id",articles.Edit)
handle
func New(c *gin.Context) { article := models.Article{} c.HTML(http.StatusOK,"articles/form",gin.H{ "title": "New article","article": article,}) }@H_466_0@model
// Article model type Article struct { Id bson.objectId `json:"_id,omitempty" bson:"_id,omitempty"` title String `json:"title" form:"title" binding:"required" bson:"title"` Body String `json:"body" form:"body" binding:"required" bson:"body"` CreatedOn int64 `json:"created_on" bson:"created_on"` updatedOn int64 `json:"updated_on" bson:"updated_on"` // User bson.objectId `json:"user"` }@H_466_0@middleware
router.Use(middlewares.Connect) router.Use(middlewares.ErrorHandler)
封装方式二、将路由函数写好,将参数以参数形式传递给 action
srv.Ws.HandleConnect(func(s *melody.Session) { FireConnect(srv,s) })
还可以封装一个 Help函数,一个 log方法
func (a *Action) ToLog(g *GamE) { PutCards := make([]Card,0) TakeCard := g.CardFromReference(a.TakeCard) for _,id := range a.PutCards { PutCards = append(PutCards,g.CardFromReference(id)) } g.LastLog = &Log{a.PlayerName,a.Name,TakeCard,PutCards,a.option} }
大佬总结
以上是大佬教程为你收集整理的golang web 封装之 handles全部内容,希望文章能够帮你解决golang web 封装之 handles所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。