Files
TestingWebApp/backend/src/app.js
T
Константин Лебединский 47279c72e3 chore: фронт :3107, API :3001 (Docker, Vite, CORS, доки)
- compose: testing-web 3107:80, testing-backend 3001:3001, PORT+FRONTEND_URL
- nginx → testing-backend:3001; Vite 3107, proxy /api → 3001
- server default PORT 3001; Dockerfile EXPOSE 3001; CORS dev — localhost:3107
- README, журнал, user guide

Made-with: Cursor
2026-04-24 23:14:33 +05:00

50 lines
1.2 KiB
JavaScript

import express from 'express';
import cors from 'cors';
import cookieParser from 'cookie-parser';
import dotenv from 'dotenv';
import authRoutes from './routes/auth.js';
import testsRoutes from './routes/tests.js';
import { RU } from './messages/ru.js';
dotenv.config();
export function createApp() {
const app = express();
const corsOrigins =
process.env.NODE_ENV === 'production'
? process.env.FRONTEND_URL
? [process.env.FRONTEND_URL]
: []
: [
'http://localhost:3107',
'http://localhost:3000',
];
app.use(
cors({
origin: corsOrigins.length ? corsOrigins : true,
credentials: true,
})
);
app.use(express.json());
app.use(cookieParser());
app.use('/api/auth', authRoutes);
app.use('/api/tests', testsRoutes);
app.get('/api/health', (req, res) => {
res.json({
status: 'ok',
timestamp: new Date().toISOString(),
message: 'Server is running',
});
});
app.use((err, req, res, _next) => {
console.error('Error:', err);
res.status(err.status || 500).json({
error: err.message || RU.internal,
});
});
app.use((req, res) => {
res.status(404).json({ error: RU.notFound });
});
return app;
}