title: Cannot execute Node.js app on Heroku successfully (crashes each time)
body: <p>I have attempted to put together a sample node.js app on Heroku basically as per their instructions here: <a href="https://devcenter.heroku.com/articles/nodejs" rel="noreferrer">https://devcenter.heroku.com/articles/nodejs</a></p>
  
  <p>The app runs fine locally with <code>foreman start</code>, however, each time I deploy the app it crashes.  <strong><em>What am I doing wrong?</em></strong></p>
  
  <p><strong>My <code>Procfile</code> contains:</strong></p>
  
  <pre><code>web: node web.js
  </code></pre>
  
  <p><strong>My <code>package.json</code> contains:</strong></p>
  
  <pre><code>{
    "name": "testapp",
    "version": "0.0.1",
    "engines": {
        "node": "0.6.15"
      , "npm": "1.1.9"    
    }
    , "dependencies": {
      "tower": "0.4.0-12"
    }
  }
  </code></pre>
  
  <p><strong>My <code>web.js</code> contains:</strong></p>
  
  <pre><code>var express = require('express');
  
  var app = express.createServer(express.logger());
  
  app.get('/', function(request, response) {
    response.send('Hello World!');
  });
  
  var port = process.env.PORT || 3000;
  app.listen(port, function() {
    console.log("Listening on " + port);
  });
  </code></pre>
  
  <p>The app deploys and starts up, yet crashes each time. The log output I see from the app is:</p>
  
  <pre><code>2012-04-27T20:21:31+00:00 heroku[web.1]: State changed from created to starting
  2012-04-27T20:21:37+00:00 heroku[web.1]: Starting process with command `node web.js`
  2012-04-27T20:21:38+00:00 app[web.1]: 
  2012-04-27T20:21:38+00:00 app[web.1]: node.js:201
  2012-04-27T20:21:38+00:00 app[web.1]:         throw e; // process.nextTick error, or 'error' event on first tick
  2012-04-27T20:21:38+00:00 app[web.1]:               ^
  2012-04-27T20:21:38+00:00 app[web.1]: Error: Cannot find module 'express'
  2012-04-27T20:21:38+00:00 app[web.1]:     at Function._resolveFilename (module.js:332:11)
  2012-04-27T20:21:38+00:00 app[web.1]:     at Function._load (module.js:279:25)
  2012-04-27T20:21:38+00:00 app[web.1]:     at Module.require (module.js:354:17)
  2012-04-27T20:21:38+00:00 app[web.1]:     at require (module.js:370:17)
  2012-04-27T20:21:38+00:00 app[web.1]:     at Object.&lt;anonymous&gt; (/app/web.js:1:77)
  2012-04-27T20:21:38+00:00 app[web.1]:     at Module._compile (module.js:441:26)
  2012-04-27T20:21:38+00:00 app[web.1]:     at Object..js (module.js:459:10)
  2012-04-27T20:21:38+00:00 app[web.1]:     at Module.load (module.js:348:31)
  2012-04-27T20:21:38+00:00 app[web.1]:     at Function._load (module.js:308:12)
  2012-04-27T20:21:38+00:00 app[web.1]:     at Array.0 (module.js:479:10)
  2012-04-27T20:21:39+00:00 heroku[web.1]: Process exited with status 1
  2012-04-27T20:21:40+00:00 heroku[web.1]: State changed from starting to crashed
  2012-04-27T20:30:01+00:00 heroku[router]: Error H10 (App crashed) -&gt; GET testapp.herokuapp.com/ dyno= queue= wait= service= status=503 bytes=
  </code></pre>