我是Go的新手,需要幫助!在 PostgreSQL 數(shù)據(jù)庫中,我有一個名為factors. 此表有 2 列(factor_id和factor_name)?,F(xiàn)在我已經(jīng)成功地從 Go 應用程序連接到 PostgreSQL 數(shù)據(jù)庫。當我試圖在控制臺中發(fā)出基于查詢的 GET 請求時,我看到了錯誤。http://localhost:8000/api/factors/?limit=5&offset=1我哪里弄錯了?請幫我解決這個問題。控制器/factors.go:package controllersimport ( "encoding/json" "fmt" "net/http" "restify/models" "restify/utils")var GetFactors = func(res http.ResponseWriter, req *http.Request) { data := models.Factors{} err := models.GetFactors(&data, req.URL.Query().Get("limit"), req.URL.Query().Get("offset")) if err != nil { fmt.Println(err.Error()) http.Error(res, err.Error(), 500) return } out, err := json.Marshal(data) if err != nil { fmt.Println(err.Error()) http.Error(res, err.Error(), 501) return } resp := make(map[string]interface{}) resp["Dictionaries"] = string(out) utils.Respond(res, resp)}
1 回答

滄海一幻覺
TA貢獻1824條經(jīng)驗 獲得超5個贊
似乎問題是在此處分配數(shù)據(jù)庫時:
DB, err := sql.Open("postgres", dbURL)
數(shù)據(jù)庫在新范圍內(nèi)定義,因此這會創(chuàng)建一個局部變量而不是設置 pkg 級變量。因此,代碼Open()
建立了與數(shù)據(jù)庫的連接。
試試這個:
var err error DB, err = sql.Open("postgres", dbURL)
這是官方報價:
與常規(guī)變量聲明不同,短變量聲明可以重新聲明變量,前提是它們最初是在同一塊(如果塊是函數(shù)體,則為參數(shù)列表)中較早聲明的,具有相同的類型,并且至少有一個非空變量是新的。因此,重新聲明只能出現(xiàn)在多變量簡短聲明中。重新聲明不會引入新變量;它只是為原始值分配了一個新值。
- 1 回答
- 0 關注
- 147 瀏覽
添加回答
舉報
0/150
提交
取消