Wie übergebe ich Argumente an meinen Handler

Ich versuche, mein Datenbankobjekt an meine Handler weiterzuleiten, anstatt ein globales Objekt zu haben. Aber ich weiß nicht, ob dies möglich ist. Ich verwende das Gorilla Mux-Paket und sehe, dass es einen Abschluss als zweiten Parameter benötigt.

// https://github.com/gorilla/mux/blob/master/mux.go#L174
// HandleFunc registers a new route with a matcher for the URL path.
// See Route.Path() and Route.HandlerFunc().
func (r *Router) HandleFunc(path string, f func(http.ResponseWriter,
    *http.Request)) *Route {
    return r.NewRoute().Path(path).HandlerFunc(f)
}

Welche dann die Parameter definiert, die ich verwenden kann, im Idealfall möchte ich einen dritten Parameter wie diesen haben.

// In my main
router.HandleFunc("/users/{id}", showUserHandler).Methods("GET")

func showUserHandler(w http.ResponseWriter, r *http.Request, db *gorm.DB) {
    fmt.Fprintf(w, "We should fetch the user with id %s", vars["id"])
}

ibt es eine Problemumgehung? Oder brauche ich ein globales DB-Objekt? Ich bin neu in Go. Bitte erläutern Sie eine mögliche Antwort im Detail.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage