目前,我尝试使用 Go 创建一个小型 Web 项目,用于服务器上的数据处理。
我尝试将我的数据库连接传递给我的 HandlerFunc(tions) 但它没有按预期工作。我对 golang 很陌生,所以可能我没有理解这个 lang 的一些基本原理。
我的主要功能如下所示:
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?我尝试了很多东西,但没有一个奏效。
守候你守候我
慕斯709654
相关分类