Как вы обеспечиваете, чтобы промежуточное программное обеспечение не применялось дважды?Как обеспечить, чтобы промежуточное программное обеспечение не было дважды завернуто?
Мое приложение использует 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
.