Mercurial
view react_games/backend/routes/web.ts @ 138:1f023b8bf9c3
[Test]
| author | June Park <parkjune1995@gmail.com> |
|---|---|
| date | Fri, 09 Jan 2026 11:35:07 -0800 |
| parents | fb9bcd3145cb |
| children |
line wrap: on
line source
import { Router, static as serveStatic } from 'express'; import path from 'node:path'; type SpaMount = { baseUrl: string; // Base path like /games entryHtml: string; // we need to define its entry index html }; export function createWebRouter(publicDir: string, spaMounts: SpaMount[]) { const router = Router(); // order matters so geting just public one first router.use(serveStatic(publicDir, { index: 'index.html', extensions: ['html'], setHeaders: (res) => { res.setHeader('X-Content-Type-Options', 'nosniff'); }, })); for (const { baseUrl, entryHtml } of spaMounts) { router.get(baseUrl, (_req, res) => { res.sendFile(path.join(publicDir, entryHtml)); }); router.get(`${baseUrl}/:rest`, (_req, res) => { res.sendFile(path.join(publicDir, entryHtml)); }); } router.use((_req, res) => { res.status(404).send('Not Found'); }); return router; }