update: route handlers execute rule(execute all -> manual next)

This commit is contained in:
loveuer 2024-01-30 11:01:58 +08:00
parent 083b91bfaa
commit 9dcf2f8e28
4 changed files with 38 additions and 6 deletions

12
ctx.go
View File

@ -81,14 +81,14 @@ func (c *Ctx) Cookies(key string, defaultValue ...string) string {
func (c *Ctx) Next() error { func (c *Ctx) Next() error {
c.index++ c.index++
s := len(c.handlers)
for ; c.index < s; c.index++ { var err error
if err := c.handlers[c.index](c); err != nil {
return err if c.index < len(c.handlers) {
} err = c.handlers[c.index](c)
} }
return nil return err
} }
/* =============================================================== /* ===============================================================

0
go.sum Normal file
View File

View File

@ -0,0 +1,27 @@
package main
import (
"github.com/loveuer/nf"
"log"
)
func main() {
app := nf.New()
app.Get("/nice", h1, h2)
log.Fatal(app.Run(":3333"))
}
func h1(c *nf.Ctx) error {
you := c.Query("to")
if you == "you" {
return c.JSON(nf.Map{"status": 201, "msg": "nice to meet you"})
}
return c.Next()
}
func h2(c *nf.Ctx) error {
return c.JSON(nf.Map{"status": 200, "msg": "hello world"})
}

View File

@ -0,0 +1,5 @@
### test multi handlers no next
GET http://127.0.0.1:3333/nice?to=you
### test multi handlers do next
GET http://127.0.0.1:3333/nice?to=nf