封装方式一、将 model 和 handle 以及中间层放在不同的包中
main
router.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,})}
model
// Article modeltype 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"`}
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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)