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 关注
- 186 浏览
添加回答
举报