app.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import express from "express";
  2. import compression from "compression";
  3. import mongoose from "mongoose";
  4. import cors from "cors";
  5. import cookieParser from "cookie-parser";
  6. import createHtml from "./createHtml.js";
  7. import {catchError} from "./HttpError.js";
  8. import otherRoutes from "./routes/other.js";
  9. import userRoutes from "./routes/user.js";
  10. import workoutRoutes from "./routes/workout.js";
  11. import sessionRoutes from "./routes/session.js";
  12. let mongoString = "mongodb://127.0.0.1/workout";
  13. if(process.env.NODE_ENV === "production"){
  14. mongoString = `mongodb://workout:${process.env.MONGODB_PASS}@127.0.0.1:27017/workout?authSource=admin`;
  15. }
  16. mongoose.connect(mongoString);
  17. global.cwd = import.meta.dirname;
  18. global.html = await createHtml();
  19. const app = express();
  20. app.use(cookieParser(process.env.COOKIE_SECRET));
  21. app.use(compression());
  22. app.use(cors({
  23. origin: process.env.NODE_ENV === "production" ? "https://workout.leemorgan.dev" : "http://localhost:8000",
  24. credentials: true
  25. }));
  26. app.use(express.json());
  27. otherRoutes(app);
  28. userRoutes(app);
  29. workoutRoutes(app);
  30. sessionRoutes(app);
  31. app.use(catchError);
  32. app.listen(process.env.PORT);