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

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

Gorm - 不獲取數據

Gorm - 不獲取數據

Go
慕碼人2483693 2022-08-15 16:20:27
我正在嘗試使用Gin和Gorm設置REST API。以下是我的:main.gopackage mainimport (    "app/config"    "app/service"    "github.com/gin-gonic/gin")func main() {    r := gin.Default()    // Connect to database    config.ConnectDatabase()    r.GET("/books", service.FindBooks)    // Run the server    r.Run()}在我的,我試圖像這樣連接到DBconfig/setup.gopackage configimport (    "github.com/jinzhu/gorm"    _ "github.com/jinzhu/gorm/dialects/mysql")var DB *gorm.DB// ConnectDatabase : Setup connection to databasefunc ConnectDatabase() {    database, err := gorm.Open("mysql", "root:password@tcp(127.0.0.1:3306)/test_db")    database.SingularTable(true)    if err != nil {        panic("Failed to connect to database!")    }    DB = database}在我的中,我有以下邏輯:service/book.gopackage serviceimport (    "errors"    "app/config"    "app/model"    "fmt"    "net/http"    "github.com/gin-gonic/gin")// FindBooks : Get all booksfunc FindBooks(c *gin.Context) {    c.JSON(http.StatusOK, gin.H{"data": FindAllBooks()})}// FindAllBooks : Fetch all book from DBfunc FindAllBooks() []model.Book {    var book []model.Book    config.DB.Find(&book)    for i := 0; i < len(book); i++ {        fmt.Println(book[i])    }    return book}而我的定義如下:model/Book.gopackage modeltype Book struct {    id        int64  `json:"id" gorm:"primary_key"`    label     string `json:"label" gorm:"type:varchar(255)"`}當我使用 運行應用程序時,以下是我可以看到的日志:go run main.go[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production. - using env:   export GIN_MODE=release - using code:  gin.SetMode(gin.ReleaseMode)[GIN-debug] GET    /books                    --> feedconsumer/service.FindBooks (3 handlers)[GIN-debug] Environment variable PORT is undefined. Using port :8080 by default[GIN-debug] Listening and serving HTTP on :8080{0   }[GIN] 2021/03/09 - 12:43:43 | 200 |    2.313864ms |             ::1 | GET      "/books"基本上,這意味著對象實際上沒有被獲取。我在這里錯過了什么?{0   }
查看完整描述

2 回答

?
守著一只汪

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

GORM用于定義模型字段。鏈接到文檔snake_case


因此,對于您的情況,它基本上是:


package model


type Book struct {

    ID        int64  `json:"id" gorm:"primary_key"`

    Label     string `json:"label" gorm:"type:varchar(255)"`

}


查看完整回答
反對 回復 2022-08-15
?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

我想你可以像 https://gorm.io/docs/logger.html 一樣為GORM配置記錄器,以便能夠在這些日志中看到實際的數據庫查詢。乍一看,您正在以正確的方式完成所有事情,如 https://gorm.io/docs/query.html#Retrieving-all-objects 但我個人遇到了一些不可預測的GORM行為,這在文檔中并不那么明顯


查看完整回答
反對 回復 2022-08-15
  • 2 回答
  • 0 關注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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