I have attempted to put together a sample node.js app on Heroku basically as per their instructions here: https://devcenter.heroku.com/articles/nodejs
The app runs fine locally with foreman start, however, each time I deploy the app it crashes. What am I doing wrong?
My Procfile contains:
web: node web.js
My package.json contains:
{
"name": "testapp",
"version": "0.0.1",
"engines": {
"node": "0.6.15"
, "npm": "1.1.9"
}
, "dependencies": {
"tower": "0.4.0-12"
}
}
My web.js contains:
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);
});
The app deploys and starts up, yet crashes each time. The log output I see from the app is:
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.<anonymous> (/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) -> GET testapp.herokuapp.com/ dyno= queue= wait= service= status=503 bytes=