6

Go で Web アプリケーションを作成していますが、コードを整理するのに苦労しています。
MongoDB での基本的な CRUD 操作では、コードの冒頭で常に次のようなことを行う必要があります。

session, err := mgo.Dial("localhost")
if err != nil {
    return err
}
defer session.Close()

しかし、いつも同じコードを繰り返さなければならないという事実は好きではありません。

それを短くする方法、または私のコードでこれを多く回避する方法はありますか:

if err != nil {
    return err
}

私はGoが初めてなので、明らかな何かが欠けているかもしれません。

4

1 に答える 1

3

まず実際の質問については、いいえ、それはエラーのチェックから離れてください。

次に、mgo を使用する適切な方法は、セッションを 1 つ用意し、何かを行う必要があるたびにそれを複製することです。次に例を示します。

var (
    mgoSession *mgo.Session
)

func init() {
    sess, err := mgo.Dial("localhost")
    if err != nil {
        panic(err) // no, not really
    }
    mgoSession = sess
}

func do_stuff_with_mgo() {
    sess := mgoSession.Clone()
    defer sess.Close()
    //do stuff with sess
}

func main() {
    go do_stuff_with_mgo()
    go do_stuff_with_mgo()
    do_stuff_with_mgo()
}

mgo に関するこの記事もチェックしてください (私は著者ではありませんが、mgo の学習に役立ちましたが、少し古いかもしれません)。

于 2014-08-02T21:41:31.793 に答える