Tak więc awaria jest spowodowana tym, że wskaźnik db jest zerowy. Oznacza to, że kod, który próbuje użyć tego połączenia na linii 40, powoduje panikę.
rows, errrows := db.Query(...
Wskaźnik bazy danych jest zerowy, ponieważ, jak zauważył Peter, http.ListenAndServe blokuje, co oznacza nic po uruchomieniu.
Spróbuj uruchomić ten przykład lokalnie, aby zobaczyć problem:
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)")
}
Nie zobaczysz komunikatu Uruchomiony kod.