server.js 2.2 KB

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