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

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

MongoDB 錯誤“無可達服務器”與 golang

MongoDB 錯誤“無可達服務器”與 golang

Go
慕標琳琳 2023-02-06 14:39:40
我剛剛在 youtube ( https://youtu.be/GwQ1hvuSNJA ) 上關注了這個教程。go run main.go 但是在我如何弄清楚之后出現錯誤“無法訪問服務器” ?我應該將 localhost 更改為 mongodb uri 嗎?下面是源代碼。var rnd *renderer.Rendervar db *mgo.Databaseconst (    hostName       string = "localhost"    dbName         string = "demo_todo"    collectionName string = "todo"    port           string = ":3000")func init() {    rnd = renderer.New()    sess, err := mgo.Dial(hostName)    checkErr(err)    sess.SetMode(mgo.Monotonic, true)    db = sess.DB(dbName)}func main() {    stopChan := make(chan os.Signal, 1)    signal.Notify(stopChan, os.Interrupt)    r := chi.NewRouter()    r.Use(middleware.Logger)    r.Get("/", homeHandler)    r.Mount("/todo", todoHandlers())    srv := &http.Server{        Addr:         port,        Handler:      r,        ReadTimeout:  60 * time.Second,        WriteTimeout: 60 * time.Second,        IdleTimeout:  60 * time.Second,    }    go func() {        log.Println("Listening on port ", port)        if err := srv.ListenAndServe(); err != nil {            log.Printf("listen: %s\n", err)        }    }()}
查看完整描述

1 回答

?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

作為旁注:github.com/globalsign/mgo早已無人維護(現在已經超過 4 年)。請使用官方 MongoDB Go 驅動程序。


您可以將 MongoDB URI 傳遞給mgo.Dial(),而不僅僅是主機名。您未指定的部分將使用與您的實際值不匹配的默認值。所以提供一個完整的 URI。

它具有以下語法:

[mongodb://][user:pass@]host1[:port1][,host2[:port2],...][/database][?options]

例如,它可能很簡單:

localhost

或更多參與,例如:

mongodb://myuser:mypass@localhost:40001,otherhost:40001/mydb

如果沒有為服務器提供端口號,則默認為 27017。

URL 中提供的用戶名和密碼將用于驗證進入以主機名末尾的斜杠命名的數據庫,或者如果沒有提供則進入“admin”數據庫。身份驗證信息也將保留在通過 New 方法獲得的會話中。

所以這樣做:

uri := fmt.Sprintf("mongodb://%s:%s/%s", hostName, port, dbName)
sess, err := mgo.Dial(uri)


查看完整回答
反對 回復 2023-02-06
  • 1 回答
  • 0 關注
  • 100 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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