大佬教程收集整理的这篇文章主要介绍了golang实现路由中间件middleware,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
package router import ( "../ctrl" "../funcs" "github.com/julienschmidt/httprouter" "net/http" ) type middleWareHandler struct { r *httprouter.Router } func NewMiddleWareHandler(r *httprouter.Router) http.Handler { m := middleWareHandler{} m.r = r return m } func (m middleWareHandler) Servehttp(w http.ResponseWriter,r *http.request) { //检验合法性(session) ok := funcs.ValidateUser(r) if ok == false { funcs.Resp(w,-1,"请先登录",nil) return } m.r.Servehttp(w,r) } func RegisterHandlers() *httprouter.Router { router := httprouter.New() router.ServeFiles("/asset/*filepath",http.Dir("asset")) //启动静态资源服务 router.POST("/user/login",ctrl.Login) //登陆 router.POST("/user/register",ctrl.Register) //注册 router.POST("/contact/addfriend",ctrl.AddFriend) //添加好友 router.POST("/contact/loadfriend",ctrl.LoadFriend) //加载好友 return router }@H_491_4@main.go
package main import ( "./funcs" "./router" "html/template" "log" "net/http" "runtime" ) var ( AllConf funcs.Confs err error tpl *template.Template //SessionManager *funcs.Manager ) //func init() { // SessionManager = funcs.Manager{} //} //循环渲染所有模版、路由方法 func DisplayView() { tpl,err = template.ParseGlob("view/**/*") //错误则不必再继续 if err != nil { log.Fatal(err.Error()) } for _,v := range tpl.Templates() { tplName := v.Name() http.HandleFunc(tplName,func(writer http.ResponseWriter,request *http.request) { tpl.ExecuteTemplate(writer,tplName,nil) }) } } func main() { //初始化配置 if AllConf,err = funcs.InitConf("config.json"); err != nil { log.Fatal(err) } //初始化核心数 runtime.GOMAXPROCS(runtime.Numcpu()) //初始化数据库 //渲染模版 //DisplayView() //注册路由 r := router.RegisterHandlers() mh := router.NewMiddleWareHandler(r) err := http.ListenAndServe(":80",mh) if err != nil { log.Fatal(err) } }
以上是大佬教程为你收集整理的golang实现路由中间件middleware全部内容,希望文章能够帮你解决golang实现路由中间件middleware所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。