diff --git a/backend/server.js b/backend/server.js index 4a92e3c..06bb8a8 100644 --- a/backend/server.js +++ b/backend/server.js @@ -3,23 +3,49 @@ const dotenv = require("dotenv"); const cors = require("cors"); const mongoose = require("mongoose"); const path = require("path"); -const validateEnv = require("./config/validateEnv.js"); - const cookieParser = require("cookie-parser"); +const validateEnv = require("./config/validateEnv.js"); + const authRoutes = require("./routes/Auth"); const inquiryRoutes = require("./routes/inquiryRoutes.js"); const noticeRoutes = require("./routes/noticeRoutes.js"); const applicationRoutes = require("./routes/applicationRoutes"); const contactRoutes = require("./routes/contactRoutes.js"); const teacherRoutes = require("./routes/teacherRoutes.js"); + +// Load values from .env when available dotenv.config(); + +// Safe development fallbacks +process.env.PORT = process.env.PORT || "5000"; +process.env.MONGO_URL = + process.env.MONGO_URL || "mongodb://127.0.0.1:27017/school_website"; +process.env.JWT_SECRET = + process.env.JWT_SECRET || "fallback_development_secret_key"; + +const PORT = process.env.PORT; +const MONGO_URL = process.env.MONGO_URL; + const app = express(); -app.use(cors({ origin: "http://localhost:5173", credentials: true })); + +// Middleware +app.use( + cors({ + origin: process.env.FRONTEND_URL || "http://localhost:5173", + credentials: true, + }) +); + app.use(express.json()); -validateEnv(); app.use(cookieParser()); +<<<<<<< HEAD +// Validate environment variables after applying fallbacks +validateEnv(); + +======= +>>>>>>> upstream/main // Routes app.use("/api/auth", authRoutes); app.use("/api/inquiries", inquiryRoutes); @@ -29,31 +55,41 @@ app.use("/api/contact", contactRoutes); app.use("/api/teacher", teacherRoutes); app.use("/uploads", express.static(path.join(__dirname, "uploads"))); +<<<<<<< HEAD +// Connect to MongoDB +======= // Connect to mongodb with try-catch +>>>>>>> upstream/main async function connectDB() { if (!process.env.MONGO_URL) { console.warn("WARNING: MONGO_URL not found. Skipping database connection. API endpoints that require the database will not work."); return; } try { - await mongoose.connect(process.env.MONGO_URL); - console.log(" connected to mongodb"); + await mongoose.connect(MONGO_URL); + console.log("Connected to MongoDB"); } catch (error) { - console.log(" Database connection failed:", error.message); + console.error("Database connection failed:", error.message); process.exit(1); } } -connectDB(); +<<<<<<< HEAD +// Start the server after MongoDB connects +async function startServer() { + await connectDB(); -const PORT = process.env.PORT || 5000; + app + .listen(PORT, () => { + console.log(`Server started on port ${PORT}`); + }) + .on("error", (error) => { + console.error("Server error:", error.message); + process.exit(1); + }); +} +======= +connectDB(); +>>>>>>> upstream/main -// Start server with error handling -app - .listen(PORT, () => { - console.log(`server is started on port ${PORT}`); - }) - .on("error", (err) => { - console.log("Server error:", err.message); - process.exit(1); - }); +startServer(); \ No newline at end of file