【发布时间】:2015-05-29 13:07:04
【问题描述】:
如何确保中间件不会被应用两次?
我的应用程序正在使用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 组件的依赖。我考虑过使用wrap-middlewares 方法向1 和2 添加另一个协议,但是中间件的顺序很重要。例如(buddy-auth's)wrap-authentication 取决于 wrap-session 和 wrap-params。
【问题讨论】:
标签: clojure middleware ring