2

我正在使用 gorilla mux 来获取模式值。我如何处理这样的空变量:

去:

func ProductHandler (w http.ResponseWriter, r *http.Request) {
    vars := mux.Vars(r)
    a := vars["key"]
    if a = "" {       //does not seem to register empty string
       //do something
    } else 
       //do something
}

var r = mux.NewRouter()

func main() {
    r.HandleFunc("/products/{key}", ProductHandler)

    http.Handle("/", r)

    http.ListenAndServe(":8080", nil)
}

当我输入网址 www.example.com/products 或 www.example.com/products/ 时,我收到 404 page not found 错误。如何处理 ProductHandler 中的空变量?

http://www.gorillatoolkit.org/pkg/mux

4

1 回答 1

3

最简单的解决方案?添加:

r.HandleFunc("/products", ProductHandler)

我很确定 Gorilla 会按照注册顺序安排最长的比赛

这也是文档概述页面建议使用它的方式:

然后在子路由器中注册路由:

s.HandleFunc("/products/", ProductsHandler)
s.HandleFunc("/products/{key}", ProductHandler)
s.HandleFunc("/articles/{category}/{id:[0-9]+}"), ArticleHandler)
于 2014-10-03T15:30:16.847 回答