做一家直播卖货的网站阿里巴巴网页版入口
web/
2025/9/27 13:14:43/
文章来源:
做一家直播卖货的网站,阿里巴巴网页版入口,金阊seo网站优化软件,网站 全屏幻灯片学习Go语言Web框架Gee总结--分组控制Group 学习网站来源#xff1a;Gee
相当于上一篇#xff0c;这节只改变了gee/gee.go文件#xff0c;其他文件一样 路由分组是指将相似的路由规则分组到一起#xff0c;以便更好地管理和维护路由 就比如在网络中#xff0c;路由分组可以… 学习Go语言Web框架Gee总结--分组控制Group 学习网站来源Gee
相当于上一篇这节只改变了gee/gee.go文件其他文件一样 路由分组是指将相似的路由规则分组到一起以便更好地管理和维护路由 就比如在网络中路由分组可以根据不同的需求进行分类比如按照目的地、协议类型、服务类型等进行分组。 group/gee/gee.go
package geeimport (lognet/http
)// HandlerFunc defines the request handler used by gee
type HandlerFunc func(*Context)type (//包含了前缀prefix、中间件middlewares、父分组parent以及引擎实例engineRouterGroup struct {prefix stringmiddlewares []HandlerFunc // 支持中间件parent *RouterGroup // 支持嵌套engine *Engine // 所有组共享一个Engine实例}//实现了ServeHTTP接口同时包含了RouterGroup和router以及存储所有分组的groupsEngine struct {*RouterGrouprouter *routergroups []*RouterGroup // 存储所有组
)func New() *Engine {engine : Engine{router: newRouter()}engine.RouterGroup RouterGroup{engine: engine}engine.groups []*RouterGroup{engine.RouterGroup}return engine
}/*
用于创建新的路由分组
在这个方法中根据传入的前缀创建一个新的RouterGroup实例并将其添加到Engine的groups中
*/
func (group *RouterGroup) Group(prefix string) *RouterGroup {engine : group.enginenewGroup : RouterGroup{prefix: group.prefix prefix,parent: group,engine: engine,}engine.groups append(engine.groups, newGroup)return newGroup
}/*
用于向路由表中添加路由规则
在这个方法中根据传入的HTTP方法、路由模式和处理函数构建完整的路由模式并将其添加到路由表中
*/
func (group *RouterGroup) addRoute(method string, comp string, handler HandlerFunc) {pattern : group.prefix complog.Printf(Route %4s - %s, method, pattern)group.engine.router.addRoute(method, pattern, handler)
}func (group *RouterGroup) GET(pattern string, handler HandlerFunc) {group.addRoute(GET, pattern, handler)
}func (group *RouterGroup) POST(pattern string, handler HandlerFunc) {group.addRoute(POST, pattern, handler)
}func (engine *Engine) Run(addr string) (err error) {return http.ListenAndServe(addr, engine)
}//实现了http.Handler接口用于处理HTTP请求它会创建一个新的上下文对象并调用路由表的处理方法来处理请求
func (engine *Engine) ServeHTTP(w http.ResponseWriter, req *http.Request) {c : newContext(w, req)engine.router.handle(c)
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82782.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!