 <p>It's not the same "throughout the application lifecycle", it's the same throughout middleware stack. Express is based on Connect, and connect brings the notion of "middleware stack" - you register functions that do something with request/response and able to pass (or not) work up to the next layer in the middleware. All functions in the "stack" operate on the same request/response, but each new request result in new instance of request/response objects.</p> <p>Basically, the answer is "it's because <a href="https://github.com/senchalabs/connect" rel="nofollow">Connect</a> is designed to work this way"</p>