Перейти с использованием mux Router - Как передать мою БД моим обработчикам

Сейчас я пытаюсь создать небольшой Web-проект, использующий Go для обработки данных на сервере.

Я пытаюсь передать свое соединение с базой данных на мой HandlerFunc (tions), но оно не работает, как ожидалось. Я довольно новичок в Голанге, поэтому, возможно, я не понял некоторые основные принципы этого языка.

Мой основной функционал выглядит так:

func main() {

    db, err := config.NewDB("username:password@/databasename?charset=utf8&parseTime=True")
    if err != nil {
        log.Panic(err)
    }   
    env := &config.Env{DB: db} 

    router := NewRouter(env)
    log.Fatal(http.ListenAndServe(":8080", router))
}

Мой роутер:

func NewRouter(env *config.Env) *mux.Router {
    router := mux.NewRouter().StrictSlash(true)
    for _, route := range routes {
        var handler http.Handler

        handler = route.HandlerFunc
        handler = Logger(handler, route.Name)

        router.
            Methods(route.Method).
            Path(route.Pattern).
            Name(route.Name).
            Handler(handler)
    }   
    return router
}

и мои маршруты:

type Route struct {
    Name        string
    Method      string
    Pattern     string
    HandlerFunc http.HandlerFunc
}

type Routes []Route

var routes = Routes{
    Route{
        "Index",
        "GET",
        "/",
        controller.Index,
    },  
    Route{
        "Show",
        "GET",
        "/todos/{todoId}",
        controller.TodoShow,
    },  
    Route{
        "Create",
        "POST",
        "/todos",
        controller.TodoCreate,
    },  
}

Итак - как я могу передать мой "env" (или env.DB) моим FuncHandlers? Я перепробовал много вещей, но ни одна из них не сработала.

Ответы на вопрос(2)

Ваш ответ на вопрос