main.ts 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. import { config } from "#config";
  2. import express from "express";
  3. import { logger } from "#logger";
  4. import DbService from "./db/db-service.js";
  5. const PORT = config.PORT;
  6. const app = express();
  7. app.use(express.json());
  8. app.set("trust proxy", true);
  9. // cookie-parser
  10. import cookieParser from "cookie-parser";
  11. app.use(cookieParser());
  12. // cors
  13. import cors from "cors";
  14. app.use(
  15. cors({
  16. credentials: true,
  17. origin: ["http://localhost:9000", "http://localhost:9001"],
  18. }),
  19. );
  20. // файлы
  21. import path from "path";
  22. const __dirname = path.resolve();
  23. app.use("/files", express.static(path.join(__dirname, "files")));
  24. import { filesUtils } from "#utils/files-utils.js";
  25. filesUtils.createFilesDir();
  26. // лог всех запросов
  27. app.use((req, res, next) => {
  28. logger.debug(`Запрос ${req.url}`);
  29. next();
  30. });
  31. logger.info("Импорт роутеров...");
  32. // payment-webhook
  33. import paymentWebhookRouter from "./modules/client/shop/payment/payment-webhook-router.js";
  34. app.use("/api/client/hookie-hookie/", paymentWebhookRouter);
  35. // middleware
  36. import eventCodeMiddleware from "#middlewares/event-code-middleware.js";
  37. app.use(eventCodeMiddleware());
  38. // роутеры
  39. // users-management
  40. import authRouter from "./modules/client/users/auth/routers/auth-router.js";
  41. app.use("/api/auth/", authRouter);
  42. // event
  43. import cEventRouter from "./modules/client/event/c-event-router.js";
  44. app.use("/api/client/event/", cEventRouter);
  45. // auth
  46. import authMiddleware from "#middlewares/auth-middleware.js";
  47. app.use("/api/", authMiddleware());
  48. // -- CLIENT --
  49. // user
  50. import cUsersRouter from "./modules/client/users/c-users-router.js";
  51. app.use("/api/client/users/", cUsersRouter);
  52. // pe
  53. import cPeRouter from "./modules/client/activities/participant-entities/c-pe-router.js";
  54. app.use("/api/client/pe/", cPeRouter);
  55. // act
  56. import cActRouter from "./modules/client/activities/c-act-router.js";
  57. app.use("/api/client/act/", cActRouter);
  58. // cart
  59. import cCartRouter from "./modules/client/shop/cart/c-cart-router.js";
  60. app.use("/api/client/cart/", cCartRouter);
  61. // orders
  62. import cOrdersRouter from "./modules/client/shop/c-orders-router.js";
  63. app.use("/api/client/orders/", cOrdersRouter);
  64. // events-management
  65. // import EventsRouter from "./modules/management/events-router.js";
  66. // app.use("/api/events-management/", authMiddleware(), EventsRouter);
  67. // import sessionRouter from "./modules/user/routers/session-router.js";
  68. // app.use("/api/session/", sessionRouter);
  69. // обработчик ошибок
  70. import errorMiddleware from "./middlewares/error-middleware.js";
  71. import { startSchedulers } from "#services/scheduler-service.js";
  72. app.use(errorMiddleware);
  73. //
  74. logger.info("✅ Роутеры загружены!");
  75. const start = async () => {
  76. try {
  77. // проверка схемы БД
  78. await DbService.checkDbSchema();
  79. logger.info("Запуск сервера...");
  80. app.listen(PORT, () => logger.info(`🚀 Сервер запущен на порту ${PORT}`));
  81. startSchedulers();
  82. } catch (e) {
  83. logger.error(e);
  84. }
  85. };
  86. start();