Structuring Express middleware so handlers stay thin

A route handler should read like a description of what the endpoint does. Everything else is a layer.