registerHandlers.go
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 }
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) } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。