create-server.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. const fastify = require("fastify")();
  2. const handlers = require("./handlers");
  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
  15. .header("Content-Type", "application/json")
  16. .code(200)
  17. .send({ message: "Hello, World!" });
  18. });
  19. fastify.get("/plaintext", (req, reply) => {
  20. reply
  21. .header("Content-Type", "text/plain")
  22. .code(200)
  23. .send("Hello, World!");
  24. });
  25. const database = process.env.DATABASE;
  26. if (database) {
  27. const dbLayer = require(`./db/${database}`);
  28. const routerHandler = handlers(dbLayer);
  29. fastify.get("/db", routerHandler.singleQuery);
  30. fastify.get("/queries", routerHandler.multipleQueries);
  31. fastify.get("/fortunes", routerHandler.fortunes);
  32. fastify.get("/updates", routerHandler.updates);
  33. }
  34. fastify.listen(8080, "0.0.0.0", err => {
  35. if (err) {
  36. throw err;
  37. }
  38. console.log(
  39. `Worker started and listening on http://0.0.0.0:8080 ${new Date().toISOString()}`
  40. );
  41. });