Vì vậy, sự cố là do con trỏ db là nil. Điều này có nghĩa là mã cố gắng sử dụng kết nối đó trên dòng 40 gây ra sự hoảng loạn.
rows, errrows := db.Query(...
Con trỏ db là nil vì, như Peter đã chỉ ra, http.ListenAndServe đang chặn, có nghĩa là không có gì sau khi nó sẽ chạy.
Hãy thử chạy cục bộ ví dụ này để xem vấn đề:
package main
import (
"net/http"
)
func Group(res http.ResponseWriter, req *http.Request) {
println("group handler")
}
func main() {
http.HandleFunc("/group/", Group)
err := http.ListenAndServe(":9001", nil)
if err != nil {
panic(err)
}
println("Running code after ListenAndServe (only happens when server shuts down)")
}
Bạn sẽ không thấy thông báo Mã đang chạy.