main.ts 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. // 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. // users-management
  31. import authRouter from "./modules/users-management/auth/routers/auth-router.js";
  32. app.use("/api/auth/", authRouter);
  33. // events-management
  34. import EventsRouter from "./modules/events-management/events-router.js";
  35. app.use("/api/events-management/", authMiddleware(), EventsRouter);
  36. // companies-management
  37. import CompaniesRouter from "./modules/companies-management/companies-router.js";
  38. app.use("/api/companies-management/", authMiddleware(), CompaniesRouter);
  39. // locations-management
  40. import LocationsRouter from "./modules/locations-management/locations-router.js";
  41. app.use("/api/locations-management/", authMiddleware(), LocationsRouter);
  42. // tasks-management
  43. import TasksRouter from "./modules/tasks-management/tasks-router.js";
  44. app.use("/api/tasks-management/", authMiddleware(), TasksRouter);
  45. import TaskBlocksRouter from "./modules/tasks-management/task-blocks-router.js";
  46. app.use("/api/tasks-management/", authMiddleware(), TaskBlocksRouter);
  47. // import sessionRouter from "./modules/user/routers/session-router.js";
  48. // app.use("/api/session/", sessionRouter);
  49. // обработчик ошибок
  50. import errorMiddleware from "./middlewares/error-middleware.js";
  51. app.use(errorMiddleware);
  52. //
  53. const start = async () => {
  54. try {
  55. logger.info("Запуск сервиса...");
  56. // проверка схемы БД
  57. await DbService.checkDbShema();
  58. // TODO сделать проверку .env
  59. app.listen(PORT, () => logger.info(`Сервер запущен на порту ${PORT}`));
  60. } catch (e) {
  61. logger.error(e);
  62. }
  63. };
  64. start();