server.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. const env = require("./env");
  2. // import asyncHandler from "express-async-handler";
  3. // import passport from "passport";
  4. const cookieParser = require("cookie-parser");
  5. const express = require("express");
  6. const helmet = require("helmet");
  7. const morgan = require("morgan");
  8. const path = require("path");
  9. const hbs = require("hbs");
  10. const helpers = require("./handlers/helpers");
  11. // import * as links from "./handlers/links";
  12. // import * as auth from "./handlers/auth";
  13. const routes = require("./routes");
  14. const renders = require("./renders");
  15. const utils = require("./utils");
  16. const { stream } = require("./config/winston")
  17. // import "./cron";
  18. require("./passport");
  19. const app = express();
  20. // TODO: comments
  21. app.set("trust proxy", true);
  22. if (env.isDev) {
  23. app.use(morgan("combined", { stream }));
  24. }
  25. app.use(helmet({ contentSecurityPolicy: false }));
  26. app.use(cookieParser());
  27. app.use(express.json());
  28. app.use(express.urlencoded({ extended: true }));
  29. app.use(express.static("static"));
  30. // app.use(passport.initialize());
  31. // app.use(helpers.ip);
  32. // template engine / serve html
  33. app.set("view engine", "hbs");
  34. app.set("views", path.join(__dirname, "views"));
  35. utils.extendHbs();
  36. app.use("/", renders);
  37. // app.use(asyncHandler(links.redirectCustomDomain));
  38. app.use("/api/v2", routes);
  39. app.use("/api", routes);
  40. // server.get(
  41. // "/reset-password/:resetPasswordToken?",
  42. // asyncHandler(auth.resetPassword),
  43. // (req, res) => app.render(req, res, "/reset-password", { token: req.token })
  44. // );
  45. // server.get(
  46. // "/verify-email/:changeEmailToken",
  47. // asyncHandler(auth.changeEmail),
  48. // (req, res) => app.render(req, res, "/verify-email", { token: req.token })
  49. // );
  50. // server.get(
  51. // "/verify/:verificationToken?",
  52. // asyncHandler(auth.verify),
  53. // (req, res) => app.render(req, res, "/verify", { token: req.token })
  54. // );
  55. // server.get("/:id", asyncHandler(links.redirect(app)));
  56. // Error handler
  57. app.use(helpers.error);
  58. // Handler everything else by Next.js
  59. // server.get("*", (req, res) => handle(req, res));
  60. app.listen(env.PORT, () => {
  61. console.log(`> Ready on http://localhost:${env.PORT}`);
  62. });