Maison >développement back-end >Golang >Comment intégrer un middleware et prévenir les fuites de mémoire dans Gorilla Mux ?

Comment intégrer un middleware et prévenir les fuites de mémoire dans Gorilla Mux ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-15 12:55:23284parcourir

How to Integrate Middleware and Prevent Memory Leaks in Gorilla Mux?

Intégration du middleware dans Gorilla mux

Lors de l'utilisation de Gorilla mux pour le routage, une exigence courante est d'inclure un middleware qui traite chaque demande entrante. Cet article fournit une solution complète à cette intégration.

Pour établir un middleware, créez une fonction wrapper :

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)
    })
}

Ce wrapper enregistre l'URL de la requête et passe le contrôle au gestionnaire suivant.

Pour utiliser ce middleware avec Gorilla mux :

r := mux.NewRouter()
r.HandleFunc("/", HomeHandler)
http.Handle("/", Middleware(r))

Dans cette configuration, le middleware gère toutes les requêtes acheminées par multiplexeur vers le chemin "/".

Résolution des fuites de mémoire Gorilla/Sessions

Pour éviter le problème de fuite de mémoire lorsque vous n'utilisez pas Gorilla/mux, suivez la recommandation :

http.ListenAndServe(":"+portstring, context.ClearHandler(r))

Cela enveloppe le routeur avec context.ClearHandler pour éviter les fuites de mémoire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn