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