Uses middleware pattern.
Each time we use app.use we add an other middleware function.
ctx - The context contains all the information for a signle request and the response object aswell.
next - Calls the next middleware.
The order is sequential.
The router methods order depends on where we add:
app
.use(router.routes())
.use(router.allowedMethods());
If its after the "general" methods they run first and then get passed.