learnlytics-go/templ/examples/integration-gofiber/main.go

34 lines
665 B
Go
Raw Normal View History

2025-03-20 12:35:13 +01:00
package main
import (
"github.com/a-h/templ"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/log"
)
func main() {
app := fiber.New()
app.Get("/:name?", func(c *fiber.Ctx) error {
name := c.Params("name")
c.Locals("name", name)
if name == "" {
name = "World"
}
return Render(c, Home(name))
})
app.Use(NotFoundMiddleware)
log.Fatal(app.Listen(":3000"))
}
func NotFoundMiddleware(c *fiber.Ctx) error {
c.Status(fiber.StatusNotFound)
return Render(c, NotFound())
}
func Render(c *fiber.Ctx, component templ.Component) error {
c.Set("Content-Type", "text/html")
return component.Render(c.Context(), c.Response().BodyWriter())
}