封装方式一、将 model 和 handle 以及中间层放在不同的包中

@H_466_0@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,})
}
@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,请注明来意。