Spaces:
Runtime error
Runtime error
| import express, { type Express } from "express"; | |
| import cors from "cors"; | |
| import pinoHttp from "pino-http"; | |
| import router from "./routes"; | |
| import { logger } from "./lib/logger"; | |
| const app: Express = express(); | |
| app.use( | |
| pinoHttp({ | |
| logger, | |
| serializers: { | |
| req(req) { | |
| return { | |
| id: req.id, | |
| method: req.method, | |
| url: req.url?.split("?")[0], | |
| }; | |
| }, | |
| res(res) { | |
| return { | |
| statusCode: res.statusCode, | |
| }; | |
| }, | |
| }, | |
| }), | |
| ); | |
| const frontendUrl = process.env["FRONTEND_URL"] || "*"; | |
| app.use(cors({ | |
| origin: frontendUrl === "*" ? "*" : frontendUrl.split(","), | |
| credentials: true | |
| })); | |
| app.use(express.json()); | |
| app.use(express.urlencoded({ extended: true })); | |
| import path from "path"; | |
| import { fileURLToPath } from "url"; | |
| const __filename = fileURLToPath(import.meta.url); | |
| const __dirname = path.dirname(__filename); | |
| app.use("/api", router); | |
| // Serve static files from the React app | |
| const frontendDistPath = path.resolve(__dirname, "../../design-studio/dist/public"); | |
| app.use(express.static(frontendDistPath)); | |
| // Handle React routing, return all requests to React app | |
| app.get(/.*/, (req, res, next) => { | |
| if (req.path.startsWith("/api")) { | |
| return next(); | |
| } | |
| res.sendFile(path.join(frontendDistPath, "index.html")); | |
| }); | |
| app.use((err: any, req: express.Request, res: express.Response, next: express.NextFunction) => { | |
| logger.error(err); | |
| res.status(500).json({ error: err.message || "Internal Server Error", stack: err.stack }); | |
| }); | |
| export default app; | |