2 回答

TA貢獻1757條經驗 獲得超8個贊
有很多方法可以解決這個問題。首先,在此范圍內打開連接后,您可能希望將其推遲到此處關閉。
db, err := sql.Open("postgres", "user=root dbname=root")
if err != nil {
log.Fatal(err)
}
defer db.Close()
這將確保在您離開此范圍時清除連接。關于您的處理程序......將它們編寫為與連接相同范圍內的閉包很簡單,因此您可以自由使用它。
編輯:澄清一下,你說你認為你不能在 main.js 中嵌套函數。你可以用類似的東西來做到這一點;
get_handler := func() {
return db.ReadTheData()
}
http.HandleFunc("get", get_handler)

TA貢獻1871條經驗 獲得超13個贊
大多數應用程序從全局范圍內的數據庫處理程序開始是很常見的。sql.DB被定義為對并發訪問是安全的,因此可以被所有需要它的處理程序同時使用。
var db *sql.DB
func main() {
var err error
db, err = sql.Open("postgres", "user=root dbname=root")
if err != nil {
log.Fatal(err)
}
...
- 2 回答
- 0 關注
- 178 瀏覽
添加回答
舉報