create-server.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /**
  2. * Currently commenting out redis caching as there is no
  3. * working implementation for the benchmark suite.
  4. */
  5. const Hapi = require('hapi');
  6. const Vision = require('vision');
  7. const server = new Hapi.Server();
  8. server.connection({port: 8080, host: '0.0.0.0'});
  9. server.register(Vision, (err) => {
  10. if (err) {
  11. throw err;
  12. }
  13. server.views({
  14. engines: { html: require('handlebars') },
  15. path: __dirname + '/views/'
  16. });
  17. });
  18. const MongooseHandler = require('./handlers/mongoose');
  19. const SequelizeHandler = require('./handlers/sequelize');
  20. const SequelizePgHandler = require('./handlers/sequelize-postgres');
  21. // Makes routing simpler as tfb routes are all GET's
  22. // We also don't use the nifty route features that Hapi has
  23. // to offer such as attaching a validator
  24. const Route = (path, handler) =>
  25. server.route({ method: 'GET', path, handler });
  26. const JsonSerialization = (req, reply) =>
  27. reply({ message: 'Hello, World!' }).header('Server', 'hapi');
  28. const Plaintext = (req, reply) =>
  29. reply('Hello, World!')
  30. .header('Server', 'hapi')
  31. .header('Content-Type', 'text/plain');
  32. Route('/json', JsonSerialization);
  33. Route('/plaintext', Plaintext);
  34. Route('/mongoose/db', MongooseHandler.SingleQuery);
  35. Route('/mongoose/queries', MongooseHandler.MultipleQueries);
  36. Route('/mongoose/fortunes', MongooseHandler.Fortunes);
  37. Route('/mongoose/updates', MongooseHandler.Updates);
  38. Route('/sequelize/db', SequelizeHandler.SingleQuery);
  39. Route('/sequelize/queries', SequelizeHandler.MultipleQueries);
  40. Route('/sequelize/fortunes', SequelizeHandler.Fortunes);
  41. Route('/sequelize/updates', SequelizeHandler.Updates);
  42. Route('/sequelize-pg/db', SequelizePgHandler.SingleQuery);
  43. Route('/sequelize-pg/queries', SequelizePgHandler.MultipleQueries);
  44. Route('/sequelize-pg/fortunes', SequelizePgHandler.Fortunes);
  45. Route('/sequelize-pg/updates', SequelizePgHandler.Updates);
  46. server.start((err) =>
  47. console.log('Hapi worker started and listening on ' + server.info.uri + " "
  48. + new Date().toISOString(" ")));