underrate's picture
Initial commit
d53e5b4 verified
Raw
History Blame Contribute Delete
1.94 kB
import express from "express";
import cors from "cors";
import dotenv from "dotenv";
dotenv.config();
const app = express();
const port = process.env.PORT || 5000;
app.use(cors({
origin: process.env.FRONTEND_URL || "http://localhost:3000",
credentials: true,
}));
app.use(express.json());
import cookieParser from "cookie-parser";
app.use(cookieParser());
import authRoutes from "./routes/auth.routes";
import portfolioRoutes from "./routes/portfolio.routes";
import testimonialRoutes from "./routes/testimonial.routes";
import publicTestimonialRoutes from "./routes/public-testimonials.routes";
import inquiryRoutes from "./routes/inquiry.routes";
import adminInquiryRoutes from "./routes/admin-inquiry.routes";
import blogRoutes from "./routes/blog.routes";
import adminBlogRoutes from "./routes/admin-blog.routes";
import uploadRoutes from "./routes/upload.routes";
import publicPortfolioRoutes from "./routes/public-portfolio.routes";
import { getCsrfToken, csrfProtection } from "./middleware/csrf";
import path from "path";
app.get("/", (req, res) => {
res.send("WebServices API is running");
});
// Provide CSRF token to frontend
app.get("/api/csrf-token", csrfProtection, getCsrfToken);
app.use("/api/auth", authRoutes);
app.use("/api/inquiries", inquiryRoutes);
app.use("/api/testimonials", publicTestimonialRoutes);
app.use("/api/blog", blogRoutes);
app.use("/api/admin/portfolio", portfolioRoutes);
app.use("/api/admin/testimonials", testimonialRoutes);
app.use("/api/admin/inquiries", adminInquiryRoutes);
app.use("/api/admin/blog", adminBlogRoutes);
app.use("/api/portfolio", publicPortfolioRoutes);
app.use("/api/upload", uploadRoutes);
// Serve uploaded local files
app.use("/uploads", express.static(path.join(process.cwd(), "uploads")));
app.listen(port, () => {
console.log(`[server]: Server is running at http://localhost:${port}`);
});