我目前在使用GoLang
和MongoDB
,这是我的当前使用场景。
我希望在特定的包中初始化连接到MongoDB数据库
,并在其他几个本地包中使用返回的client
。以下是我尝试的方法,
我已经在名为dataLayer
的包中初始化了对MongoDB
的连接,如下所示:
package dataLayer
import (
"context"
"log"
"time"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"go.mongodb.org/mongo-driver/mongo/readpref"
)
func InitDataLayer() {
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
client, err := mongo.Connect(ctx, options.Client().ApplyURI(credentials.MONGO_DB_ATLAS_URI))
if err != nil {
log.Fatal(err)
} else {
log.Println("Connected to Database")
}
}
现在,如果我希望在其他包中使用返回的client
,反复调用initDataLayer
以获得client
是否安全合适生产环境?
非常感谢。