Промежуточное программное обеспечение не может быть обработано в gin-gonic

#go #middleware

#Вперед #Промежуточное программное обеспечение

Вопрос:

Вы знаете, когда я пишу промежуточное программное обеспечение для обработки журнала, я помещаю перед ним промежуточное программное обеспечение для обработки ресурсов (например, handle GET), и я публикую свой код здесь, надеюсь, что кто-нибудь сможет мне помочь. Спасибо.

 v1Group := s.router.Group("/v1")
v1Group.Use(v1.newOtherHandler().Handle)  //handle other things
v1Group.Use(v1.NewUserHandler().Handle)   //handle user
{
    v1.NewhandleResource(v1Group)     //handle resource
}
v1Group.Use(v1.newLogHandler.Handle)  //handle log
  

Я использую router.Set(«demo») и router.Get(«demo») для передачи значения ресурса дескриптора для обработки функции журнала. Но программа не смогла выполнить обработку журнала. Что-нибудь в v1.newLogHandler.Функция дескриптора не обрабатывается. когда я помещаю обработчик журнала в обработчик ресурсов, он может быть выполнен. Итак, вы можете просто подумать, что любое промежуточное программное обеспечение в обработчике ресурсов не может быть выполнено. Вот почему?

Комментарии:

1. Вы пропустили скобки () или это просто опечатка?

2. На самом деле, это не опечатка. newLogHandler здесь является значением структуры. Handle — это его метод. Тогда who has () — это функция, которая возвращает значение структуры.