Ich habe schon ein bisschen herumgespielt und ich liebe es, aber es scheint ein paar Dinge zu haben, die es anders als in anderen Sprachen macht. Also schreibe ich eine Web-App, die MongoDb mit dem mgo-Paket verwendet. Ich frage mich, was die beste Vorgehensweise ist, um eine Datenbanksitzung für die Verwendung in anderen Paketen (meine Modelle) offen zu halten.Gibt es eine Standardmethode, um eine Datenbanksitzung über Pakete in Golang hinweg offen zu halten?
Fühlen Sie sich frei, mich auf irgendwelche falschen Ideale zu korrigieren, die ich haben könnte, ich habe nur begonnen, GO zu verwenden.
Heres, was ich denke:
package main
import(
ds "api-v2/datastore"
)
type Log struct {
Name string
}
func main() {
sesh := ds.Sesh
err = &sesh.Insert(&Log{"Ale"})
}
Und in meinem Datenspeicher-Paket:
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
}
Dank!
Sehen Sie, ob diese Antwort hilfreich ist. [Link] (http://stackoverflow.com/a/26576589/2285935) –
Sie erstellen ein Paket, das die Sitzung als eine lokale Variable startet. Dann erstellen Sie eine Funktion, die diese Variable erhält und schließen Sie sie dann, wenn Sie fertig sind. Ich werde etwas Code zur Verfügung stellen, wenn ich zu meinem Desktop komme – CESCO