update: hide Param, add SetParam(can't cover value)

This commit is contained in:
loveuer 2024-04-10 18:03:38 +08:00
parent 9530fa863f
commit 56fa3815cb
3 changed files with 18 additions and 5 deletions

3
app.go
View File

@ -165,8 +165,9 @@ func (a *App) handleHTTPRequest(c *Ctx) {
// Find route in tree
value := root.getValue(rPath, c.params, c.skippedNodes, unescape)
if value.params != nil {
c.Params = *value.params
c.params = value.params
}
if value.handlers != nil {
c.handlers = value.handlers
c.fullPath = value.fullPath

9
ctx.go
View File

@ -29,7 +29,7 @@ type Ctx struct {
locals map[string]interface{}
skippedNodes *[]skippedNode
fullPath string
Params Params
//Params Params
}
func newContext(app *App, writer http.ResponseWriter, request *http.Request) *Ctx {
@ -144,7 +144,12 @@ func (c *Ctx) verify() error {
}
func (c *Ctx) Param(key string) string {
return c.Params.ByName(key)
return c.params.ByName(key)
}
func (c *Ctx) SetParam(key, value string) {
params := append(*c.params, Param{Key: key, Value: value})
c.params = &params
}
func (c *Ctx) Form(key string) string {

View File

@ -13,8 +13,15 @@ func main() {
})
api := app.Group("/api")
api.Get("/1", func(c *nf.Ctx) error {
return c.SendString("nice")
api.Use(func(c *nf.Ctx) error {
c.SetParam("age", "18")
return c.Next()
})
api.Get("/:name", func(c *nf.Ctx) error {
name := c.Param("name")
age := c.Param("age")
return c.SendString(name + "@" + age)
})
log.Fatal(app.Run(":80"))