如何确保中间件未应用两次?
我的应用程序正在使用bidi
,我的路由和处理程序是分开的。所以我的最终环处理程序有一些中间件(例如wrap-params
和wrap-session
),我的一些处理程序有自己的自定义中间件。我可以手动监视我的主处理程序的构造函数和我的处理程序文件,但我宁愿不依赖于手动警惕。
是否有更好的设计可以帮助管理中间件?还是一些图书馆?
我的结构如下:
1. routes 2. handlers
\ /
\ /
3. (bidi.ring/make-handler routes handlers)
可以在2
中包装内容,然后再在3
中包装。
3
实际上是component,make-handler
会调用start
。 handler
& routes
来自3
组件的依赖项。我考虑过向1
&添加另一个协议2
使用wrap-middlewares
方法,但中间件的顺序非常重要。例如(buddy-auth's)wrap-authentication
取决于wrap-session
& wrap-params
。
答案 0 :(得分:1)
对于中间件你控制它是相当简单的,你可以让每个中间件添加一个密钥,其名称为请求和保释(如果你感觉宽松,则为noop)如果该密钥在任何收到的请求。对于你无法控制的中间件,我认为他们一直盯着代码并且非常努力地思考,或者当你把它描述为“手动警惕”时。