Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why my heroku node.js app is giving at=error code=H10 desc="App crashed" method=GET path="/"?

Tags:

node.js

heroku

I am trying to run my simple node app on Heroku.

Here is the directory structure

├── app.js ├── assets ├── blog.html ├── index.html ├── node_modules └── package.json 

Here is my app.js

let express = require('express'),     path = require('path'); var app = express(); let server = require('http').Server(app);  app.use(express.static(path.join(__dirname)));  app.get('/', function(req, res, next){     res.sendStatus(200); });  app.get('/blog.html', function(req, res,next){     res.sendFile(path.join(__dirname+"/blog.html")); });  app.post('/contact', function(req, res, next){  }); server.listen('8000', function() {     console.log("App is running on port 8000"); }); 

Here is the package.json

{   "name": "website",   "version": "1.0.0",   "engines" : {     "node" : "6.3.1",     "npm" : "3.10.3"   },   "description": "",   "main": "index.js",   "scripts": {     "test": "echo \"Error: no test specified\" && exit 1",     "start" : "node app.js"   },   "keywords": [],   "author": "",   "license": "ISC",   "dependencies": {     "express": "^4.14.0"   } } 

When I go to the console it rightly prints app is starting at xxxx port. But then the app crashes with the following message

2016-08-10T13:12:49.839138+00:00 app[web.1]: App is running on port xxxx 2016-08-10T13:13:34.944963+00:00 heroku[router]: at=error code=H20 desc="App boot timeout" method=GET path="/" host=saras-website.herokuapp.com request_id=28d8705a-d5a4-4aaa-bd8d-4c4c6101fbd4 fwd="106.51.20.181" dyno= connect= service= status=503 bytes= 2016-08-10T13:13:48.295315+00:00 heroku[web.1]: State changed from starting to crashed 2016-08-10T13:13:48.552740+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=saras-website.herokuapp.com request_id=b77e151f-7017-482d-b4ba-15d980534fd7 fwd="106.51.20.181" dyno= connect= service= status=503 bytes= 2016-08-10T13:13:50.163466+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=saras-website.herokuapp.com request_id=1e7b57e5-1056-4cb3-b41f-cd3f11794efe fwd="106.51.20.181" dyno= connect= service= status=503 bytes= 

I don't know what am I doing wrong here... Help is appreciated

like image 752
Saras Arya Avatar asked Aug 10 '16 13:08

Saras Arya


1 Answers

Set port like this

ES5:

var port = process.env.PORT || 8000; 

And

server.listen(port, function() {     console.log("App is running on port " + port); }); 

ES6:

const port = process.env.PORT || 8000; 

And

server.listen(port, () => {     console.log("App is running on port " + port); }); 

This allows Heroku to set the port at run time.

like image 81
alex Avatar answered Sep 20 '22 05:09

alex