server.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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.handler");
  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. app.use(helpers.isHTML);
  33. // template engine / serve html
  34. app.set("view engine", "hbs");
  35. app.set("views", path.join(__dirname, "views"));
  36. utils.registerHandlebarsHelpers();
  37. app.use("/", renders);
  38. // app.use(asyncHandler(links.redirectCustomDomain));
  39. app.use("/api/v2", routes);
  40. app.use("/api", routes);
  41. // server.get(
  42. // "/reset-password/:resetPasswordToken?",
  43. // asyncHandler(auth.resetPassword),
  44. // (req, res) => app.render(req, res, "/reset-password", { token: req.token })
  45. // );
  46. // server.get(
  47. // "/verify-email/:changeEmailToken",
  48. // asyncHandler(auth.changeEmail),
  49. // (req, res) => app.render(req, res, "/verify-email", { token: req.token })
  50. // );
  51. // server.get(
  52. // "/verify/:verificationToken?",
  53. // asyncHandler(auth.verify),
  54. // (req, res) => app.render(req, res, "/verify", { token: req.token })
  55. // );
  56. // server.get("/:id", asyncHandler(links.redirect(app)));
  57. // Error handler
  58. app.use(helpers.error);
  59. // Handler everything else by Next.js
  60. // server.get("*", (req, res) => handle(req, res));
  61. app.listen(env.PORT, () => {
  62. console.log(`> Ready on http://localhost:${env.PORT}`);
  63. });