title: Node http.createServer how to buffer incoming requests
body: <p>I'm building a small node server that generates PDF files (using Nightmare.js). Each request calls createPage to generate one pdf. </p>
  
  <p>The incoming request tend to all come around the same time, overloading the PC this is running on. </p>
  
  <p>I need to buffer the incoming requests to delay execution of some requests till some of the current requests have completed. How do I do this?</p>
  
  <pre><code>function createPage(o, final) {
      //generate pdf files
  }
  
  http.createServer(function (request, response) {
      var body = [];
      request.on('data', function (chunk) { 
          body.push(chunk);
      }).on('end', function () {
          body = Buffer.concat(body).toString();
          var json = JSON.parse(body);
  
          createPage(json, function (status) {
              if (status === true) {
                  response.writeHead(200, { 'Content-Length': 0 });
                  console.log('status good');
              } else {
                  response.writeHead(500, { 'Content-Type': 'text/html' });
                  response.write(' ' + status);
              }
              response.end('\nEnd of Request \n');
         });
     });
  }).listen(8007);
  </code></pre>