猿问

如何实现子路由

我想实现类似的路线


user/profile


user/cart


user/products


目前,我正在这样做


r.HandleFunc("user/signup", signupHandler).Methods("POST")

r.HandleFunc("user/signin", signinHandler).Methods("POST")

r.HandleFunc("user/profile", profileHandler).Methods("GET")

r.HandleFunc("user/cart", cartHandler).Methods("POST")

r.HandleFunc("user/products", productsHandler).Methods("GET")

正如您所看到的,这些路由以开头user,所以我怎么知道它是一个user路由,以便我可以在不同的文件中发送处理它。


我想要类似的东西


r.HandleFunc("user/", handlerWhichHandelAllTheRequestFromUser)

它应该处理所有从 开始的 URL users。


我正在使用 mux 大猩猩


繁星coding
浏览 102回答 1
1回答

呼啦一阵风

mux中有一个PathPrefix函数。在本例中,您可以使用它来创建路径前缀,即“/user”。例子:-userHandler.gofunc makeUserHandler()http.Handler{  //Define all you handlers here   r := mux.NewRouter()   r.HandleFunc("user/signup", signupHandler).Methods("POST")   r.HandleFunc("user/signin", signinHandler).Methods("POST")   r.HandleFunc("user/profile", profileHandler).Methods("GET")   r.HandleFunc("user/cart", cartHandler).Methods("POST")   r.HandleFunc("user/products", productsHandler).Methods("GET")  return r }主程序r := mux.NewRouter() r.PathPrefix("/user").Handler(makeUserHandler())请根据您的要求对上述代码进行必要的更改。
随时随地看视频慕课网APP

相关分类

Go
我要回答