ルーティングに Gorilla mux を利用する場合、共通の要件は、各受信リクエストを処理するミドルウェアを含めることです。この記事では、この統合に対する包括的なソリューションを提供します。
ミドルウェアを確立するには、ラッパー関数を作成します。
func Middleware(h http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { log.Println("middleware", r.URL) h.ServeHTTP(w, r) }) }
このラッパーはリクエスト URL をログに記録し、後続のハンドラーに制御を渡します。
Gorilla mux でこのミドルウェアを利用するには:
r := mux.NewRouter() r.HandleFunc("/", HomeHandler) http.Handle("/", Middleware(r))
この構成では、ミドルウェアはすべてのリクエストは、マルチプレクサによってパス "/" にルーティングされます。
ゴリラ/セッションのメモリ リーク防止への対処
ゴリラ/マルチプレクサを使用していない場合のメモリ リークの問題を防ぐには、推奨事項に従ってください:
http.ListenAndServe(":"+portstring, context.ClearHandler(r))
これは、メモリを避けるためにルーターを context.ClearHandler でラップします。漏れます。
以上がGorilla Mux でミドルウェアを統合し、メモリ リークを防ぐ方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。