Any middleware requires following 3 members: ## struct context Storing data for the middleware; can be read from another middleware or handlers ## before_handle Called before handling the request.
If `res.end()` is called, the operation is halted. (`after_handle` will still be called)
2 signatures:
`#!cpp void before_handle(request& req, response& res, context& ctx)` if you only need to access this middleware's context. ``` cpp template void before_handle(request& req, response& res, context& ctx, AllContext& all_ctx) ``` You can access other middlewares' context by calling `#!cpp all_ctx.template get()`
`#!cpp ctx == all_ctx.template get()` ## after_handle Called after handling the request.
`#!cpp void after_handle(request& req, response& res, context& ctx)` ``` cpp template void after_handle(request& req, response& res, context& ctx, AllContext& all_ctx) ```

This was pulled from `cookie_parser.h`. Further Editing required, possibly use parts of [@ipkn's wiki page](https://github.com/ipkn/crow/wiki/Middleware).