title: Nodejs: Connect and "writeHead" in first connect-callback
body: <p>I receive always the error "<strong>Error: Can't set headers after they are sent.</strong>" when calling "res.writeHead(...)" in the very first callback of connect:</p>
  
  <pre><code>var http = require('http');
  var connect = require('connect');
  
  var simpleApp = connect();
  
  simpleApp
      .use(function(req, res, next){
  
          res.writeHead(200, { 'content-type': 'text/html' });
          res.write('response powered by SIMPLE connect-object as middelware');
  
          console.log('Pre');
          next();
          console.log('Post');
      })
      .use(function(req, res, next){
          console.log('I am the header guy!');
          next();
      })
      .use('/admin', function(req, res, next){
          console.log('someone entered the admin area....');
          next();
      })
      .use(function(req, res){
          console.log('reached the tail of the "chain of responsibility!!!');
          res.end();
      });
  
  http.createServer(simpleApp).listen(process.env.PORT || 3000);
  
  console.log('Running on port "' + (process.env.PORT || 3000) + '"');
  
  // just a save-guard to stop the process after some time...
  setTimeout(function(){
      process.exit(0);
  }, 20000);
  </code></pre>
  
  <p>And this is the error-message:</p>
  
  <pre><code>Error: Can't set headers after they are sent.
      at ServerResponse.OutgoingMessage.setHeader (http.js:691:11)
      at ServerResponse.res.setHeader (C:\Users\drt\SkyDrive\Programmierung\nodejs\silkveil\node_modules\connect\lib\patch.js:63:22)
      at next (C:\Users\drt\SkyDrive\Programmierung\nodejs\silkveil\node_modules\connect\lib\proto.js:156:13)
      at Object.handle (C:\Users\drt\SkyDrive\Programmierung\nodejs\silkveil\connectSampleApp.js:13:3)
      at next (C:\Users\drt\SkyDrive\Programmierung\nodejs\silkveil\node_modules\connect\lib\proto.js:193:15)
      at Function.app.handle (C:\Users\drt\SkyDrive\Programmierung\nodejs\silkveil\node_modules\connect\lib\proto.js:201:3)
      at Server.app (C:\Users\drt\SkyDrive\Programmierung\nodejs\silkveil\node_modules\connect\lib\connect.js:65:37)
      at Server.EventEmitter.emit (events.js:98:17)
      at HTTPParser.parser.onIncoming (http.js:2108:12)
  </code></pre>
  
  <p>When I move the "writeHead"-code into the very last callback everything is fine:</p>
  
  <pre><code>.use(function(req, res){
          console.log('reached the tail of the "chain of responsibility!!!');
          res.writeHead(200, { 'content-type': 'text/html' });
          res.write('response powered by SIMPLE connect-object as middelware');
          res.end();
      });
  </code></pre>
  
  <p>So my question is: Is it only permitted to use writeHead /write in the very last callback when using connect? </p>