www 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #!/usr/bin/env node
  2. /**
  3. * Module dependencies.
  4. */
  5. var path = require('path');
  6. var fs = require('fs');
  7. var envFile = path.join(__dirname, '../.env');
  8. try {
  9. fs.accessSync(envFile, fs.F_OK);
  10. console.log("loading .env file");
  11. require('dotenv').config({path: envFile});
  12. } catch (e) {
  13. // no env file
  14. }
  15. var app = require('../app');
  16. var debug = require('debug')('slack-invite-automation:server');
  17. var http = require('http');
  18. /**
  19. * Get port from environment and store in Express.
  20. */
  21. var port = parseInt(process.env.PORT, 10) || 3000;
  22. app.set('port', port);
  23. /**
  24. * Create HTTP server.
  25. */
  26. var server = http.createServer(app);
  27. /**
  28. * Listen on provided port, on all network interfaces.
  29. */
  30. server.listen(port, '0.0.0.0');
  31. server.on('error', onError);
  32. server.on('listening', onListening);
  33. /**
  34. * Event listener for HTTP server "error" event.
  35. */
  36. function onError(error) {
  37. if (error.syscall !== 'listen') {
  38. throw error;
  39. }
  40. // handle specific listen errors with friendly messages
  41. switch (error.code) {
  42. case 'EACCES':
  43. console.error('Port ' + port + ' requires elevated privileges');
  44. process.exit(1);
  45. break;
  46. case 'EADDRINUSE':
  47. console.error('Port ' + port + ' is already in use');
  48. process.exit(1);
  49. break;
  50. default:
  51. throw error;
  52. }
  53. }
  54. /**
  55. * Event listener for HTTP server "listening" event.
  56. */
  57. function onListening() {
  58. debug('Listening on port ' + server.address().port);
  59. }