title: Heroku Node.js app "Process exited with status 1" and error h10
body: <p>I deployed my app to heroku fine with no problems. I was able to run <code>heroku local web</code> on localhost:5000 and it worked. When I went to the web dyno address, it said application error. I checked the logs for the site and it said:</p>
  
  <pre><code> 2017-05-01T02:52:30.980217+00:00 app[web.1]:     at Connection.&lt;anonymous&gt; (/app/node_modules/mongodb-core/lib/connection/pool.js:274:12)
   2017-05-01T02:52:30.980218+00:00 app[web.1]:     at emitTwo (events.js:106:13)
   2017-05-01T02:52:30.980218+00:00 app[web.1]:     at Socket.&lt;anonymous&gt; (/app/node_modules/mongodb-core/lib/connection/connection.js:177:49)
   2017-05-01T02:52:30.980218+00:00 app[web.1]:     at Connection.emit (events.js:191:7)
   2017-05-01T02:52:30.980219+00:00 app[web.1]:     at emitOne (events.js:96:13)
   2017-05-01T02:52:30.980220+00:00 app[web.1]:     at Socket.emit (events.js:188:7)
   2017-05-01T02:52:30.980221+00:00 app[web.1]:     at process._tickCallback (internal/process/next_tick.js:104:9)
   2017-05-01T02:52:31.040828+00:00 heroku[web.1]: State changed from starting to crashed
   2017-05-01T02:52:31.029211+00:00 heroku[web.1]: Process exited with status 1
   2017-05-01T02:52:40.638415+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=room111-thoughts.herokuapp.com request_id=91b591cf-3d8d-4d94-8caf-7b1b868b088b fwd="108.221.62.78" dyno= connect= service= status=503 bytes= protocol=https
   2017-05-01T02:52:41.600924+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=room111-thoughts.herokuapp.com request_id=c8f6c2d3-dc38-4e65-9a20-581910f42b36 fwd="108.221.62.78" dyno= connect= service= status=503 bytes= protocol=https
  </code></pre>
  
  <p>I am using node.js and server.js (the initializing script) is as follows</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>// load environment variables
  require('dotenv').config();
  
  // grab our dependencies
  const express    = require('express'),
    app            = express(),
    port           = process.env.PORT || 8080,
    expressLayouts = require('express-ejs-layouts'),
    mongoose       = require('mongoose'),
    bodyParser     = require('body-parser'),
    session        = require('express-session'),
    cookieParser   = require('cookie-parser'),
    flash          = require('connect-flash'),
    expressValidator = require('express-validator');
  
  // configure our application ===================
  // set sessions and cookie parser
  app.use(cookieParser());
  app.use(session({
    secret: process.env.SECRET, 
    cookie: { maxAge: 60000 },
    resave: false,    // forces the session to be saved back to the store
    saveUninitialized: false  // dont save unmodified
  }));
  app.use(flash());
  
  // tell express where to look for static assets
  app.use(express.static(__dirname + '/public'));
  
  // set ejs as our templating engine
  app.set('view engine', 'ejs');
  app.use(expressLayouts);
  
  // connect to our database
  mongoose.connect(process.env.DB_URI);
  
  // use body parser to grab info from a form
  app.use(bodyParser.urlencoded({ extended: true }));
  app.use(expressValidator());
  
  // set the routes =============================
  app.use(require('./app/routes'));
  
  // start our server ===========================
  app.listen(port, () =&gt; {
    console.log(`App listening on http://localhost:${port}`);
  });</code></pre>
  </div>
  </div>
  </p>
  
  <p>I don't have any idea what is happening, especially because it worked fine on localhost and deployment. Any help is appreciated.</p>