2015-02-12 7 views
3

Кольцо очень гладкое и имеет довольно разумные значения по умолчанию для промежуточного программного обеспечения (-ов).Нарушение сценария промежуточного программного обеспечения

Когда я сделал новое приложение через Leiningen (LEIN) Я в конечном итоге с чем-то, как это в моем маршрутизаторе/обработчик

(def app 
    (wrap-defaults app-routes site-defaults)) 

https://github.com/ring-clojure/ring-defaults

Теперь я хочу добавить еще промежуточное программное обеспечение (cemerick/другу), поэтому я могу делать такие вещи, как аутентификация для входа в систему.

Итак, как бы я перевожу выше в нечто более напоминающее кольца промежуточного слоя «стек», как в нижней части страницы https://github.com/ring-clojure/ring-defaults/blob/master/src/ring/middleware/defaults.clj

(def app 
    (-> handler 
    (wrap-anti-forgery) 
    (wrap-flash) 
    (wrap-session) 
    (wrap-keyword-params) 
    (wrap-resource) 
    (wrap wrap-file))) 

ответ

5

потому что кольцо просто использует функцию композиции для промежуточного программного обеспечения вы можете просто обернуть вокруг друга вызова завернуть по умолчанию:

(def app 
    (my-additional-mieddleware 
    (wrap-defaults app-routes site-defaults) 
    arguments to my additional middleware)) 

или вы можете нить его (например, когда у вас есть несколько промежуточных программный):

(def app 
    (-> (wrap-defaults app-routes site-defaults) 
     (friend-stuff arg arg) 
     (other-middleware arg arg arg)) 

Получение заказа права промежуточного слоя еще до вас: -/

+1

((((((спасибо: D))))))) – sova

Смежные вопросы