加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang web 封装之 handles

发布时间:2020-12-16 18:09:40 所属栏目:大数据 来源:网络整理
导读:封装方式一、将 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{"

封装方式一、将 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 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"`
}

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}
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读