我正在嘗試使用Gin和Gorm設(shè)置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)"`}當(dāng)我使用 運(yùn)行應(yīng)用程序時(shí),以下是我可以看到的日志: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"基本上,這意味著對象實(shí)際上沒有被獲取。我在這里錯(cuò)過了什么?{0 }
Gorm - 不獲取數(shù)據(jù)
慕碼人2483693
2022-08-15 16:20:27