关于部分函数的用法
skyleelove opened this issue · 7 comments
强哥,当我调用Use()后
router.Use(
// all these handlers are shared by every route
access.Logger(log.Printf),
slash.Remover(http.StatusMovedPermanently),
fault.Recovery(log.Printf),
)
之后的操作我没太明白,access.Logger(log.Printf),slash.Remover(http.StatusMovedPermanently),fault.Recovery(log.Printf),在以后的程序中是如何使用的呢?
它们都是自动被调用的。比如access.Logger()
返回的是一个handler,这个handler因为是用Use()
绑定的,每处理任何一个请求这个handler都会被调用,它的作用就是作请求日志(类似apache access log)。如果一个handler是用Get()
, Post()
之类绑定,那么它仅在请求匹配的时候才会被调用。
明白了,您的routing里边的context和router可以解耦么
能具体解释一下你的需求么?
我的理解是您的每个context中都包涵一个router,每个请求就是一个context,现在我想router和context是平行的关系,能够独立的互相调用
context之所以包含router的reference, 是因为有些middleware需要访问router。另外Context.URL()也用到了router。这个包含关系影响你的使用么?
不影响使用,想尽量的解耦,以后更新起来方便,您的这个routing写的非常棒,我现在正在研究,想理解的更透彻,以后也可以在您的基础上做自己的更新,太感谢您了。
谢谢,欢迎试用和讨论。