2
我試圖通過爲他們創建一個新程序包來將我的http go代碼分離爲「控制器」,但無法弄清楚如何將db類型傳遞到處理程序。我希望能夠將我在main.go中創建的Db類型傳遞到index.go中的索引處理程序中。如果這是解決這個問題的錯誤方法,讓我知道更好的方法(我正在學習,現在想保持簡單)。到目前爲止我的代碼:如何將類型傳遞到http處理程序
main.go:
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/gorilla/mux"
"log"
"mvc3/app/c"
"net/http"
)
var Db *sql.DB
func main() {
fmt.Println("Starting up!")
var err error
Db, err = sql.Open("mysql", "[email protected]/dev?charset=utf8")
if err != nil {
log.Fatalf("Error on initializing database connection: %s", err.Error())
}
Db.SetMaxIdleConns(100)
err = Db.Ping()
if err != nil {
log.Fatalf("Error on opening database connection: %s", err.Error())
}
r := mux.NewRouter()
r.HandleFunc("/", c.Index)
http.Handle("/", r)
http.ListenAndServe(":8080", nil)
}
/app/c/index.go:
package c
import (
"fmt"
"net/http"
)
func Index(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello world!")
}
謝謝!
完美地工作。謝謝! – Jason