app.js 840 B

12345678910111213141516171819202122232425262728293031323334
  1. import express from "express";
  2. import cors from "cors";
  3. import helmet from "helmet";
  4. import morgan from "morgan";
  5. import { config } from "./config/index.js";
  6. import { authMiddleware } from "./middleware/auth.js";
  7. import { rateLimitMiddleware } from "./middleware/rateLimit.js";
  8. import { errorHandler } from "./middleware/errorHandler.js";
  9. import { apiRouter } from "./routes/index.js";
  10. export function createApp() {
  11. const app = express();
  12. app.disable("x-powered-by");
  13. app.use(helmet());
  14. app.use(
  15. cors({
  16. origin: config.corsOrigin,
  17. credentials: true
  18. })
  19. );
  20. app.use(express.json({ limit: "10mb" }));
  21. app.use(morgan("dev"));
  22. app.get("/health", (_req, res) => {
  23. res.json({ ok: true });
  24. });
  25. app.use("/api", rateLimitMiddleware, authMiddleware, apiRouter);
  26. app.use(errorHandler);
  27. return app;
  28. }