Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Port timeout deploying Loopback app to Heroku

I deployed an Loopback app to Heroku, but it keeps crashing with error

Web process failed to bind to $PORT within 60 seconds of launch

I know it could be connected to the dynamic port of Heroku, so I set my port to the process environment one doing

app.start = function () {
  // start the web server

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

  app.set('port', port);

  app.use(loopback.static(path.resolve(__dirname, '../client')));
  app.use(loopback.static(path.resolve(__dirname, '../.tmp')));

  return app.listen(function () {
    app.emit('started');
    console.log('Web server listening at: %s', app.get('url'));
  });
};

but this didn't fix the issue.
Any idea?

like image 596
pasine Avatar asked Oct 26 '15 19:10

pasine


1 Answers

You can force Heroku to use provided port by modifying the code as provided in the documentation. If you can't relate to api docs, don't worry it's because javascript is flexible.

app.start = function () {
  // start the web server

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

  app.use(loopback.static(path.resolve(__dirname, '../client')));
  app.use(loopback.static(path.resolve(__dirname, '../.tmp')));

  return app.listen(port, function () {
    app.emit('started');
    console.log('Web server listening at: %s', app.get('url'));
  });
};
like image 145
xangy Avatar answered Oct 17 '22 21:10

xangy