Go: обрабатывать пустую переменную 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)
}
Когда я набираю URL www.example.com/products или www.example.com/products/, я получаю сообщение об ошибке 404 страница не найдена. Как мне обработать пустую переменную в ProductHandler?
1 ответ
Самое простое решение? Добавлять:
r.HandleFunc("/products", ProductHandler)
Я почти уверен, что Gorilla проведет самый длинный матч в порядке регистрации.
Это также способ , которым страница обзора документации предлагает это использовать:
Затем зарегистрируйте маршруты в подуровне:
s.HandleFunc("/products/", ProductsHandler) s.HandleFunc("/products/{key}", ProductHandler) s.HandleFunc("/articles/{category}/{id:[0-9]+}"), ArticleHandler)