Skip to content

Commit 2cbf6d5

Browse files
Merge branch 'main' into session-cleanup
2 parents 5356c14 + 00703f0 commit 2cbf6d5

18 files changed

+2961
-277
lines changed

backend/package-lock.json

Lines changed: 141 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

backend/package.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
"express-rate-limit": "^8.2.1",
2121
"jsonwebtoken": "^9.0.2",
2222
"mongodb": "^6.20.0",
23-
"mongoose": "^8.19.2",
23+
"mongoose": "^8.19.4",
24+
"multer": "^2.0.2",
2425
"node-cron": "^4.2.1",
2526
"passport": "^0.7.0",
2627
"passport-github2": "^0.1.12",
@@ -32,8 +33,10 @@
3233
"devDependencies": {
3334
"@types/bcryptjs": "^2.4.6",
3435
"@types/cookie-parser": "^1.4.10",
35-
"@types/express": "^5.0.3",
36+
"@types/cors": "^2.8.19",
37+
"@types/express": "^5.0.5",
3638
"@types/jsonwebtoken": "^9.0.10",
39+
"@types/multer": "^2.0.0",
3740
"@types/node": "^24.9.1",
3841
"@types/passport": "^1.0.17",
3942
"@types/passport-github2": "^1.2.9",

backend/src/app.ts

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,35 +6,60 @@ import { errorHandler, notFoundHandler } from "./middleware/errorHandler.js";
66
import { requestLogger } from "./middleware/requestLogger.js";
77
import roomRoutes from "./routes/roomRoutes.js";
88
import passport from "passport";
9-
import "./utils/passport.js"
10-
import cookieParser from 'cookie-parser';
9+
import "./utils/passport.js";
10+
import cookieParser from "cookie-parser";
1111
import cors from "cors";
12+
import path from "path";
13+
1214
dotenv.config();
1315
const app = express();
1416

1517
if (process.env.TRUST_PROXY === "true") {
1618
app.set("trust proxy", true);
1719
}
20+
// Required for __dirname in ES modules / TS
21+
// (TS compiles to CJS so this works fine)
22+
const __dirnameLocal = path.resolve();
23+
1824
app.use(requestLogger);
1925
app.use(express.json());
20-
app.use(cookieParser()); // <-- Add this middleware HERE
26+
app.use(cookieParser());
27+
28+
// CORS
2129
app.use(
2230
cors({
2331
origin: process.env.FRONTEND_URL || "http://localhost:5174",
2432
credentials: true,
2533
methods: ["GET", "POST", "PUT", "DELETE", "OPTIONS"],
2634
})
2735
);
28-
//initialize passport
36+
37+
// Passport
2938
app.use(passport.initialize());
30-
// Routes
39+
40+
// Uploaded avatars: stored in /uploads/avatars
41+
app.use(
42+
"/avatars",
43+
express.static(path.join(__dirnameLocal, "uploads", "avatars"))
44+
);
45+
46+
// Default avatars: stored in /public/default-avatars
47+
app.use(
48+
"/default-avatars",
49+
express.static(path.join(__dirnameLocal, "public", "default-avatars"))
50+
);
51+
52+
// -------------------------
53+
// API Routes
54+
// -------------------------
3155
app.use("/api/auth", authRoutes);
3256
app.use("/api/health", healthRoutes);
3357
app.use("/api/rooms", roomRoutes);
3458

3559
// 404 handler
3660
app.use(notFoundHandler);
37-
// Error Handler
61+
62+
// Error handler
3863
app.use(errorHandler);
3964

4065
export default app;

0 commit comments

Comments
 (0)