https://github.com/jimouchen/hertz-backend-base
A backend basic web framework implemented by herzt
https://github.com/jimouchen/hertz-backend-base
backend go-web-framework herzt
Last synced: 8 months ago
JSON representation
A backend basic web framework implemented by herzt
- Host: GitHub
- URL: https://github.com/jimouchen/hertz-backend-base
- Owner: JimouChen
- License: apache-2.0
- Created: 2024-09-08T13:30:35.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-25T14:15:04.000Z (over 1 year ago)
- Last Synced: 2025-03-22T08:15:01.103Z (about 1 year ago)
- Topics: backend, go-web-framework, herzt
- Language: Go
- Homepage:
- Size: 22.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# hertz-backend-base
A backend basic web framework implemented by herzt
## some call demo for common utils
- file
```go
package main
import (
"fmt"
"herrz-backend-base/utils"
"log"
)
func main() {
fu := &utils.FileUtils{}
// 写入JSON文件
data := map[string]interface{}{
"name": "Go",
"type": "Programming Language",
"lst": []int{21, 3, 4, 5, 1},
"map": map[string]interface{}{
"a": "A",
"b": "B",
},
}
err := fu.WriteToJSON("./data/example.json", data, "w")
if err != nil {
log.Fatalf("Error writing to JSON: %v", err)
}
// 读取JSON文件
loadedData, err := fu.LoadJSON("./data/example.json")
if err != nil {
log.Fatalf("Error loading JSON: %v", err)
}
fmt.Printf("Loaded data: %v\n", loadedData)
}
```
## usage demo of ctx
- mock demo
```go
package main
import (
"context"
"time"
"log"
"github.com/cloudwego/hertz/pkg/app"
)
func SearchAll(ctx context.Context, c *app.RequestContext) {
// 创建带有 3 秒超时的 context
ctx, cancel := context.WithTimeout(ctx, 3*time.Second)
defer cancel() // 在函数结束时取消超时 context
// 模拟长时间的操作
done := make(chan bool)
go func() {
// 假设这里是一些需要时间的操作,比如数据库查询
time.Sleep(5 * time.Second) // 模拟 5 秒的操作
done <- true
}()
// 处理超时或正常完成
select {
case <-ctx.Done(): // ctx 超时或取消时会进入这里
log.Println("Request timed out")
c.JSON(504, map[string]string{"error": "Request timed out"})
return
case <-done: // 操作完成
log.Println("Operation completed")
c.JSON(200, map[string]string{"message": "Operation completed successfully"})
}
}
```