Files
Campus-Plug/backend/index.js

55 lines
1.6 KiB
JavaScript
Raw Normal View History

const express = require("express");
const cors = require("cors");
//Get the db connection
const db = require("./utils/database");
const userRouter = require("./routes/user");
const productRouter = require("./routes/product");
2025-03-29 17:28:09 -06:00
const searchRouter = require("./routes/search");
2025-04-03 18:56:39 -06:00
const recommendedRouter = require("./routes/recommendation");
2025-04-04 00:02:04 -06:00
const history = require("./routes/history");
const review = require("./routes/review");
const { generateEmailTransporter } = require("./utils/mail");
const {
cleanupExpiredCodes,
checkDatabaseConnection,
} = require("./utils/helper");
2025-01-30 13:29:13 -07:00
const app = express();
2025-01-30 13:29:13 -07:00
app.use(cors());
app.use(express.json());
2025-01-30 13:29:13 -07:00
// Configure email transporter for Zoho
const transporter = generateEmailTransporter();
// Test the email connection
transporter
.verify()
.then(() => {
console.log("Email connection successful!");
})
.catch((error) => {
console.error("Email connection failed:", error);
});
//Check database connection
checkDatabaseConnection(db);
//Routes
app.use("/api/user", userRouter); //prefix with /api/user
app.use("/api/product", productRouter); //prefix with /api/product
2025-04-12 13:10:17 -06:00
app.use("/api/search", searchRouter); //prefix with /api/product
app.use("/api/engine", recommendedRouter); //prefix with /api/
app.use("/api/history", history); //prefix with /api/
2025-04-04 00:02:04 -06:00
app.use("/api/review", review); //prefix with /api/
// Set up a scheduler to run cleanup every hour
setInterval(cleanupExpiredCodes, 60 * 60 * 1000);
2025-03-18 18:09:15 -06:00
2025-01-30 13:46:49 -07:00
app.listen(3030, () => {
console.log(`Running Backend on http://localhost:3030/`);
console.log(`Send verification code: POST /send-verification`);
console.log(`Verify code: POST /verify-code`);
2025-01-30 13:46:49 -07:00
});