Så kraschen orsakas av att db-pekaren är noll. Det betyder att kod som försöker använda den anslutningen på linje 40 orsakar panik.
rows, errrows := db.Query(...
Db-pekaren är noll eftersom, som Peter påpekade, http.ListenAndServe blockerar, vilket betyder ingenting efter det kommer att köras.
Försök att köra det här exemplet lokalt för att se problemet:
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)")
}
Du kommer inte att se meddelandet Löpande kod.