为什么db
变量nil
在getBooks
函数中?
package main
import (
...
)
var db *sql.DB
func init() {
gotenv.Load()
}
func main() {
db, err := sql.Open("postgres", os.Getenv("ELEPHANTSQL_URL"))
err = db.Ping()
fmt.Println(db, err)
router := mux.NewRouter()
router.HandleFunc("/books", getBooks).Methods("GET")
log.Fatal(http.ListenAndServe("localhost:8000", router))
}
func getBooks(w http.ResponseWriter, r *http.Request) {
if db == nil {
log.Print("!!!!!!!!!!")
os.Exit(2)
}
}
随着:=
你宣布一个新的db
变量内部main()
范围,而不是分配给db
在包范围的变量。
您必须使用just =
或使用以外的名称db
。
试试这个:
var err error
db, err = sql.Open("postgres", os.Getenv("ELEPHANTSQL_URL"))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句