title: Sharing a response object within a module, without passing as param
body: <p>If I assigned the <code>res</code> (result) object to a <code>module</code> level property, will it be unique for each request, or could a secondary request that is started before the callback finishes overwrite it?</p>
  
  <pre><code>var moduleData = {};
  
      router.route('/publishers/:id')
          .get(function(req, res) {
  
              var id = req.params.id;
  
              // Assigning the res property to a module level property called `moduleData`
              moduleData.res = res;
  
              db.findById('publishers', id, function(error, publishers) {
  
                  someFurtherWork(publishers); // would rather not pass the res object around
              });
  
          });
  
  function someFurtherWork(publishers) {
  
      someWork(publishers, function(error, data) {
  
           // NOW we send the data back to user... is `res` guranteed to be the same one that initiated the request?
           moduleData.res.send(data);
      });
  }
  </code></pre>
  
  <p>The router is itself event driven, meaning that each <code>.get()</code> request is handled as a callback to the server, when the thread is available. This guarantees each response object is unique to the function. Will a module level property be overwritten by a second GET request here?</p>
  
  <p>If so, what workarounds are there, because I <strong>don't want to pass around my response object to multiple chained callback functions</strong>, that don't use them until all the data is collected.</p>
  
  <p>There's a good reason I'm doing this, because if I have a bunch of callbacks, and once they're all done, then I need my response object. I figured if I used the response as a module level property, it won't need to be passed around.</p>