给定此示例代码
package main
import "net/http"
func main() {
api := http.NewServeMux()
api.HandleFunc("/test", func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
})
// other routes go here
err := http.ListenAndServe(":8080", api)
// handle err here
}
字符串
当调用一个不存在的路由时,我会收到一条404消息
404 page not found
我想自定义它,所以我在**调用ListenAndServe
之前添加了以下内容
api.HandleFunc("*", func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusNotFound)
w.Write([]byte("error message goes here"))
})
型
不幸的是,这不起作用,行为和以前一样。如果消费者调用一个不存在的路由,我如何用一个定制的not found处理程序响应?
2条答案
按热度按时间bejyjqdl1#
您需要添加一个中间件来检查已注册的路由,如果路由未注册,它可以从那里返回。
字符串
此外,我更喜欢使用gofr,它默认情况下会完成所有这些任务。
eulz3vhy2#
在
"/"
下注册你的404处理程序。"/"
是可能的最不特定的模式,也匹配每个请求,所以当且仅当没有其他处理程序匹配该请求时才调用它。个字符