mirror of
https://gitee.com/shikong-sk/gofiber-study
synced 2025-02-23 15:22:14 +08:00
56 lines
1.2 KiB
Go
56 lines
1.2 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"github.com/gofiber/fiber/v2"
|
||
|
"gofiber.study.skcks.cn/common/errorx"
|
||
|
"gofiber.study.skcks.cn/common/response"
|
||
|
"gofiber.study.skcks.cn/logger"
|
||
|
"os"
|
||
|
"os/signal"
|
||
|
)
|
||
|
|
||
|
var log = logger.Logger()
|
||
|
|
||
|
func main() {
|
||
|
app := fiber.New(fiber.Config{
|
||
|
Prefork: true,
|
||
|
CaseSensitive: true,
|
||
|
StrictRouting: false,
|
||
|
ServerHeader: "SkServer",
|
||
|
ErrorHandler: func(ctx *fiber.Ctx, err error) error {
|
||
|
code := fiber.StatusInternalServerError
|
||
|
|
||
|
if e, ok := err.(*fiber.Error); ok {
|
||
|
code = e.Code
|
||
|
}
|
||
|
|
||
|
err = ctx.Status(code).JSON(errorx.NewDefaultError(err.Error()))
|
||
|
if err != nil {
|
||
|
return ctx.Status(fiber.StatusInternalServerError).SendString("Internal Server Error")
|
||
|
}
|
||
|
|
||
|
return nil
|
||
|
},
|
||
|
})
|
||
|
|
||
|
app.Get("/", func(c *fiber.Ctx) error {
|
||
|
log.Infof("\n%s", c.Request().String())
|
||
|
return c.JSON(response.NewResponse("Hello, World 👋!"))
|
||
|
})
|
||
|
|
||
|
app.Get("/routes", func(ctx *fiber.Ctx) error {
|
||
|
return ctx.JSON(response.NewResponse(app.Stack()))
|
||
|
})
|
||
|
|
||
|
go func() {
|
||
|
if err := app.Listen(":3000"); err != nil {
|
||
|
log.Fatalf("致命错误: %s", err)
|
||
|
}
|
||
|
}()
|
||
|
|
||
|
quit := make(chan os.Signal)
|
||
|
signal.Notify(quit, os.Interrupt)
|
||
|
<-quit
|
||
|
log.Infof("关闭服务")
|
||
|
}
|