create-server.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. const fastify = require('fastify')();
  2. const handler = require('./handlers/handler');
  3. fastify.register(require('point-of-view'), {
  4. engine: {
  5. ejs: require('handlebars')
  6. },
  7. templates: __dirname + '/views'
  8. })
  9. fastify.use((req, reply, next) => {
  10. reply.setHeader('Server', 'Fastify')
  11. next()
  12. })
  13. fastify.get('/json', (req, reply) => {
  14. reply.header('Content-Type', 'application/json')
  15. .code(200)
  16. .send({ message: 'Hello, World!' });
  17. })
  18. fastify.get('/plaintext', (req, reply) => {
  19. reply.header('Content-Type', 'text/plain')
  20. .code(200)
  21. .send('Hello, World!');
  22. });
  23. const handlerName = process.env.NODE_HANDLER;
  24. if (handlerName) {
  25. const dbLayer = require(`./handlers/${handlerName}`);
  26. const routerHandler = handler(dbLayer);
  27. fastify.get('/db', routerHandler.SingleQuery);
  28. fastify.get('/queries', routerHandler.MultipleQueries);
  29. fastify.get('/fortunes', routerHandler.Fortunes);
  30. fastify.get('/updates', routerHandler.Updates);
  31. }
  32. fastify.listen(8080, '0.0.0.0', err => {
  33. if (err) {
  34. throw err;
  35. }
  36. console.log(`Worker started and listening on http://0.0.0.0:8080 ${new Date().toISOString()}`);
  37. })