Heim >Backend-Entwicklung >Golang >Wie integriert man Middleware und verhindert Speicherlecks in Gorilla Mux?
Bei der Verwendung von Gorilla Mux für das Routing besteht eine häufige Anforderung darin, eine Middleware einzubinden, die jede eingehende Anfrage verarbeitet. Dieser Artikel bietet eine umfassende Lösung für diese Integration.
Um eine Middleware einzurichten, erstellen Sie eine Wrapper-Funktion:
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) }) }
Dieser Wrapper protokolliert die Anforderungs-URL und übergibt die Kontrolle an den nachfolgenden Handler.
So nutzen Sie diese Middleware mit Gorilla Mux:
r := mux.NewRouter() r.HandleFunc("/", HomeHandler) http.Handle("/", Middleware(r))
In dieser Konfiguration verarbeitet die Middleware alle weitergeleiteten Anfragen durch Mux an den Pfad „/“.
Behebung von Speicherverlusten bei Gorilla/Sitzungen
Befolgen Sie die Empfehlung, um das Problem des Speicherverlusts zu verhindern, wenn Sie Gorilla/Mux nicht verwenden :
http.ListenAndServe(":"+portstring, context.ClearHandler(r))
Dadurch wird der Router mit context.ClearHandler umhüllt, um Speicherlecks zu vermeiden.
Das obige ist der detaillierte Inhalt vonWie integriert man Middleware und verhindert Speicherlecks in Gorilla Mux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!