I have Node.js with express launch normally locally, but it crashes when I try to run it on Heroku.
When I deploy and go to the heroku subdomain:
- HTML loading but no CSS
- When updating, nothing loads and I get a general application error
- Looking at the logs, it seems that the application crashed.
Any ideas why the hero continues to crumble? The best guess is related to my static files.
Here are the logs:
2014-07-19T02:02:00.723361+00:00 heroku[router]: at=error code=H13 desc="Connection closed without response" method=GET path="/javascripts/main.js" host=sendmyemail.herokuapp.com request_id=3f2d4cd8-c70d-4506-9baf-af8d98983f37 fwd="99.43.254.71" dyno=web.1 connect=1 service=43 status=503 bytes=691 2014-07-19T02:02:00.708143+00:00 app[web.1]: throw er; // Unhandled 'error' event 2014-07-19T02:02:00.709158+00:00 app[web.1]: at errnoException (child_process.js:988:11) 2014-07-19T02:02:00.708150+00:00 app[web.1]: ^ 2014-07-19T02:02:00.707641+00:00 app[web.1]: 2014-07-19T02:02:00.707753+00:00 app[web.1]: events.js:72 2014-07-19T02:02:00.709155+00:00 app[web.1]: Error: spawn ENOENT 2014-07-19T02:02:00.709160+00:00 app[web.1]: at Process.ChildProcess._handle.onexit (child_process.js:779:34) 2014-07-19T02:02:02.265464+00:00 heroku[web.1]: State changed from up to crashed 2014-07-19T02:02:03.554266+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=sendmyemail.herokuapp.com request_id=fc319b3f-924f-4e37-bf6f-a58a4dc25770 fwd="99.43.254.71" dyno=web.1 connect=100 service= status=503 bytes= 2014-07-19T02:02:02.255985+00:00 heroku[web.1]: Process exited with status 8
Here is my package.json:
{ "name": "myapp", "version": "0.0.1", "engines": { "node": "0.10.26", "npm": "1.4.20" }, "scripts": { "start": "node app.js" }, "dependencies": { "express": "~4.2.0", "body-parser": "^1.4.3", "node-compass": "0.2.3", "ejs": "~1.0.0", "express-ejs-layouts": "~1.1.0", "mailgun-js": "^0.5.1" } }
I have css and js in a shared folder, and I have this line in app.js:
app.use(express['static'](path.join(__dirname, 'public')));
source share