server.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // Config file
  2. var settings = require('./server_config/settings.json');
  3. // Libraries
  4. var fs = require('fs');
  5. var async = require('async');
  6. var express = require('express');
  7. var app = express();
  8. var server = require('http').createServer(app);
  9. var io = require('socket.io').listen(server);
  10. var bodyParser = require('body-parser');
  11. var compress = require('compression');
  12. // Internals
  13. var indexController = require('./app/node_controllers/indexController');
  14. var launchTestController = require('./app/node_controllers/launchTestController');
  15. var resultsController = require('./app/node_controllers/resultsController');
  16. var waitingQueueSocket = require('./app/node_controllers/waitingQueueSocket');
  17. var testQueue = require('./app/lib/testQueue');
  18. app.use(compress());
  19. app.use(bodyParser.urlencoded({ extended: false }));
  20. // Routes definition
  21. app.get('/', indexController);
  22. app.post('/launchTest', function(req, res) { launchTestController(req, res, testQueue); });
  23. app.get('/results/:testId', resultsController);
  24. // Static files
  25. app.use('/public', express.static(__dirname + '/app/public'));
  26. app.use('/bower_components', express.static(__dirname + '/bower_components'));
  27. // Socket.io
  28. io.on('connection', function(socket){
  29. waitingQueueSocket(socket, testQueue);
  30. });
  31. // Launch the server
  32. server.listen(settings.serverPort, function() {
  33. console.log('Listening on port %d', server.address().port);
  34. });