补充程序配置

This commit is contained in:
yumaojun03 2024-11-16 16:00:55 +08:00
parent 5c9c08013a
commit 46e6929f52
4 changed files with 65 additions and 2 deletions

View File

@ -23,3 +23,23 @@
## 项目准备 ## 项目准备
![alt text](image.png) ![alt text](image.png)
## v2 版本
```go
// 初始化数据库, 能过与数据库交互的 连接池对象: db
func setupDatabase() *gorm.DB {
dsn := "root:123456@tcp(127.0.0.1:3306)/test?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
db.AutoMigrate(&Book{}) // 自动迁移
return db.Debug()
}
```
### 剥离配置
剥离程序配置,让程序可以通过外部加载配置: config 包: 用来管理程序的配置

37
book/config/config.go Normal file
View File

@ -0,0 +1,37 @@
package config
// 定义程序配置
// dsn := "root:123456@tcp(127.0.0.1:3306)/test?charset=utf8mb4&parseTime=True&loc=Local"
// 凡是可以提出出配置的
// 程序的配置对象
type Config struct {
App `json:"app"`
MySQL `json:"mysql"`
}
// app:
//
// host: 127.0.0.1
// port: 8080
type App struct {
Host string `json:"host"`
Port int `json:"port"`
}
// mysql:
//
// host: 127.0.0.1
// port: 3306
// database: test
// username: "root"
// password: "123456"
// debug: true
type MySQL struct {
Host string `json:"host"`
Port int `json:"port"`
Database string `json:"database"`
Username string `json:"username"`
Password string `json:"password"`
Debug bool `json:"debug"`
}

5
book/config/load.go Normal file
View File

@ -0,0 +1,5 @@
package config
// 配置的加载
// 程序的其他的部分如何读写程序配置

View File

@ -18,7 +18,7 @@ func setupDatabase() *gorm.DB {
panic("failed to connect database") panic("failed to connect database")
} }
db.AutoMigrate(&Book{}) // 自动迁移 db.AutoMigrate(&Book{}) // 自动迁移
return db return db.Debug()
} }
func Failed(ctx *gin.Context, err error) { func Failed(ctx *gin.Context, err error) {
@ -52,6 +52,7 @@ func main() {
ctx.JSON(http.StatusOK, ins) ctx.JSON(http.StatusOK, ins)
}) })
// 查询Book列表 -> []*Book // 查询Book列表 -> []*Book
// SELECT * FROM `books`
book.GET("", func(ctx *gin.Context) { book.GET("", func(ctx *gin.Context) {
var books []Book var books []Book
if err := db.Find(&books).Error; err != nil { if err := db.Find(&books).Error; err != nil {