為什么db變量在函數(shù)nil中g(shù)etBooks?package mainimport ( ...)var db *sql.DBfunc 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) }}
1 回答

繁星coding
TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
隨著:=您在范圍db內(nèi)聲明一個(gè)新變量main(),而不是db在包范圍內(nèi)分配給變量。
您必須使用 just=或使用除db.
嘗試這個(gè):
var err error
db, err = sql.Open("postgres", os.Getenv("ELEPHANTSQL_URL"))
- 1 回答
- 0 關(guān)注
- 132 瀏覽
添加回答
舉報(bào)
0/150
提交
取消