packagedbimport("fmt""gopkg.in/mgo.v2")var(Session*mgo.SessionMongo*mgo.DialInfo)const(MongoDBUrl="mongodb://localhost:27017/super")funcConnect(){uri:=MongoDBUrlmongo,err:=mgo.ParseURL(uri)s,err:=mgo.Dial(uri)iferr!=nil{fmt.Printf("Can't connect to mongo, go error %v\n",err)panic(err.Error())}s.SetSafe(&mgo.Safe{})fmt.Println("Connected to",uri)Session=sMongo=mongo}
packagemiddlewaresimport("fmt""gin-mgo-api/db""github.com/gin-gonic/gin")funcConnect(c*gin.Context){fmt.Println("Connect Middleware")ifdb.Session==nil{fmt.Println("Error DB Session")}s:=db.Session.Clone()defers.Close()c.Set("db",s.DB(db.Mongo.Database))c.Next()//这一句是必须的, 否则数据连接在跑完这个方法之后就被关闭了
}funcMiddleware(c*gin.Context){fmt.Println("this is a middleware!")}