我想在路由中有一个可选的 URL 变量。我似乎找不到使用 mux 包的方法。这是我目前的路线:func main() { r := mux.NewRouter() r.HandleFunc("/view/{id:[0-9]+}", MakeHandler(ViewHandler)) http.Handle("/", r) http.ListenAndServe(":8080", nil)}当 url 为localhost:8080/view/1. 我希望它接受即使没有id这样如果我输入localhost:8080/view它仍然可以工作。想法?
2 回答
一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
您可以HandleFunc
为根/view
路径定义一个新的:
r.HandleFunc("/view", MakeHandler(RootHandler))
并让该RootHandler
函数执行该路径所需的任何操作。
慕的地10843
TA贡献1785条经验 获得超8个赞
使用您想要的路径再次注册处理程序:
r.HandleFunc("/view", MakeHandler(ViewHandler))
只要确保在获取 vars 时检查这种情况:
vars := mux.Vars(r)
id, ok := vars["id"]
if !ok {
// directory listing
return
}
// specific view
- 2 回答
- 0 关注
- 158 浏览
添加回答
举报
0/150
提交
取消