Files
yourpart3/backend/routers/modelsProxyRouter.js
Torsten Schulz (local) 1ab9407e79
All checks were successful
Deploy to production / deploy (push) Successful in 2m56s
Refactor code structure for improved readability and maintainability; optimize performance across multiple modules.
2026-07-21 09:08:15 +02:00

29 lines
934 B
JavaScript
Executable File

import express from 'express';
import path from 'path';
import { getOptimizedModelPath } from '../services/modelsProxyService.js';
const router = express.Router();
/**
* GET /api/models/3d/falukant/characters/:filename
* Liefert die Draco-optimierte GLB-Datei (aus Cache oder nach Optimierung).
*/
router.get('/3d/falukant/characters/:filename', async (req, res) => {
const { filename } = req.params;
try {
const cachePath = await getOptimizedModelPath(filename);
res.setHeader('Content-Type', 'model/gltf-binary');
res.setHeader('Cache-Control', 'public, max-age=31536000, immutable');
res.sendFile(cachePath);
} catch (e) {
if (e.message?.includes('Invalid model filename') || e.message?.includes('not found')) {
return res.status(404).send(e.message);
}
console.error('[models-proxy]', e.message);
res.status(500).send('Model optimization failed');
}
});
export default router;