亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

轉到:客戶端已斷開連接

轉到:客戶端已斷開連接

Go
動漫人物 2022-09-19 21:19:37
自從我加入Gophers團隊以來已經有幾周了。目前為止,一切都好。我開始了一個新項目,使用光纖Web框架來構建后端API。我使用蒙哥DB作為我的數據庫。數據庫/數據庫package databaseimport (    "context"    "log"    "time"    "go.mongodb.org/mongo-driver/mongo"    "go.mongodb.org/mongo-driver/mongo/options"    "go.mongodb.org/mongo-driver/mongo/readpref")var DB *mongo.Database// InitMongo : Initialize mongodb...func connectToMongo() {    log.Printf("Initializing database")    client, err := mongo.NewClient(options.Client().ApplyURI("mongodb://localhost:27017"))    if err != nil {        log.Fatal("Could not able to connect to the database, Reason:", err)    }    ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)    err = client.Connect(ctx)    if err != nil {        log.Fatal("Context error, mongoDB:", err)    }    //Cancel context to avoid memory leak    defer cancel()    defer client.Disconnect(ctx)    // Ping our db connection    err = client.Ping(context.Background(), readpref.Primary())    if err != nil {        log.Fatal("Ping, mongoDB:", err)    }    log.Printf("Database connected!")    // Create a database    DB = client.Database("golang-test")    return}// In Golang, init() functions always initialize whenever the package is called.// So, whenever DB variable called, the init() function initializedfunc init() {    connectToMongo()}控制器/mongo.controller/mongo.controller.gopackage mongocontrollerimport (    "log"    "github.com/gofiber/fiber/v2"    service "gitlab.com/.../services/mongoservice")// GetPersons godoc// @Summary Get persons.// @Description Get persons// @Tags persons// @Produce json// @Success 200 {object} []service.Person// @Failure 400 {object} httputil.HTTPError// @Failure 404 {object} httputil.HTTPError// @Failure 500 {object} httputil.HTTPError// @Router /v1/persons [get]func GetPersons(c *fiber.Ctx) error {    res, err := service.GetPersons()    if err != nil {        log.Fatal("ERROR: in controller...", err)    }    return c.JSON(res)}以下是我存儲在數據庫中的數據:
查看完整描述

1 回答

?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

您正在調用正在創建連接的同一函數 (),因此它將在調用該函數后關閉連接。您應該返回連接并在完成任務后關閉。我的意思是這些部分:defer client.Disconnect(ctx)connectToMongo defer cancel() defer client.Disconnect(ctx)



查看完整回答
反對 回復 2022-09-19
  • 1 回答
  • 0 關注
  • 43 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號