Я немного поиграл с go, и он мне нравится, но, похоже, у него есть несколько вещей, которые он делает не так, как другие языки. Поэтому я пишу веб-приложение, которое использует MongoDb с пакетом mgo. Мне интересно, как лучше всего держать сеанс базы данных открытым для использования в других пакетах (моих моделях).
Не стесняйтесь поправлять меня за любые неправильные идеалы, которые у меня могут быть, я только начал использовать GO.
Вот что я думаю:
package main
import(
ds "api-v2/datastore"
)
type Log struct {
Name string
}
func main() {
sesh := ds.Sesh
err = &sesh.Insert(&Log{"Ale"})
}
И в моем пакете хранилища данных:
package datastore
import(
"gopkg.in/mgo.v2"
)
var Sesh = newSession()
func newSession() **mgo.Session {
session, err := mgo.Dial("localhost")
if err != nil {
panic(err)
}
return &session
}
Спасибо!