有沒有辦法自動決議請求的主體,而不是if在每個處理程式中這樣做!
我正在使用 go-fiber 框架
if err := c.BodyParser(&post); err != nil {
// do something
}
我聽說有些人不推薦這個,但我很好奇為什么!
uj5u.com熱心網友回復:
如果要創建中間件,請使用如下方法:
const PostKey = "post"
func CreateBodyParsingMiddleware(handler func(*fiber.Ctx) error) func(c *fiber.Ctx) error {
return func(c *fiber.Ctx) error {
var post Post //type Post is declared elsewhere
if err := c.BodyParser(&post); err != nil {
return fiber.NewError(fiber.StatusBadRequest, "invalid body")
}
c.Locals(PostKey, post)
err := handler(c)
return err
}
}
將中間件與類似的東西一起使用
router.Get("/", CreateBodyParsingMiddleware(myRequestHandler))
您現在可以使用c.Locals(PostKey)in訪問帖子myRequestHandler。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/493484.html
標籤:去
