main.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import "./plugins/dotenv.js";
  2. import express from "express";
  3. import { logger } from "#logger";
  4. import DbService from "./db/db-service.js";
  5. const PORT = process.env.PORT || 3001;
  6. const app = express();
  7. app.use(express.json());
  8. // cookie-parser
  9. import cookieParser from "cookie-parser";
  10. app.use(cookieParser());
  11. // cors
  12. import cors from "cors";
  13. app.use(
  14. cors({
  15. credentials: true,
  16. origin: ["http://localhost:9000", "http://localhost:9001"],
  17. }),
  18. );
  19. // файлы
  20. import path from "path";
  21. const __dirname = path.resolve();
  22. app.use("/files", express.static(path.join(__dirname, "files")));
  23. // лог всех запросов
  24. app.use((req, res, next) => {
  25. logger.debug(`Запрос ${req.url}`);
  26. next();
  27. });
  28. // роутеры
  29. import authMiddleware from "./middlewares/auth-middleware.js";
  30. import authRouter from "./modules/user/auth/routers/auth-router.js";
  31. app.use("/api/auth/", authRouter);
  32. import EventManagerRouter from "./modules/event-manager/event-manager-router.js";
  33. app.use("/api/event-manager/", authMiddleware(), EventManagerRouter);
  34. // import sessionRouter from "./modules/user/routers/session-router.js";
  35. // app.use("/api/session/", sessionRouter);
  36. // обработчик ошибок
  37. import errorMiddleware from "./middlewares/error-middleware.js";
  38. app.use(errorMiddleware);
  39. //
  40. const start = async () => {
  41. try {
  42. // проверка схемы БД
  43. await DbService.checkDbShema();
  44. // TODO сделать проверку .env
  45. app.listen(PORT, () => logger.info(`Сервер запущен на порту ${PORT}`));
  46. } catch (e) {
  47. logger.fatal(e);
  48. }
  49. };
  50. start();