/
smaker21
/
YouTube-transcript-using-supadata
Обзор
Документация
Войти
/
smaker21
/
YouTube-transcript-using-supadata
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
backend/src/app.ts
49 строк
1 KB
Ilya Ostapov
new file: .env.example
12 фев 2026, 18:43
12 фев 2026, 18:43
7016baa
Код
Авторство
О чём код?
import express from 'express'; import helmet from 'helmet'; import cors from 'cors'; import { errorHandler } from './middlewares/errorHandler.js'; import { summaryRouter } from './routes/summary.js'; import { env } from './config/env.js'; import { rateLimiter } from './middlewares/rateLimiter.js'; import setupSwagger from './loaders/swagger.js'; const app = express(); // Security middleware app.use(helmet()); app.use( cors({ origin: env.CORS_ORIGIN, methods: ['GET', 'POST', 'OPTIONS'], allowedHeaders: ['Content-Type', 'Authorization'], }) ); // Body parsing app.use(express.json({ limit: '10mb' })); app.use(express.urlencoded({ extended: true })); // Health check endpoint app.get('/health', (_req, res) => { res.json({ status: 'ok', timestamp: new Date().toISOString(), environment: env.NODE_ENV, }); }); // API routes with rate limiting app.use('/api', rateLimiter, summaryRouter); // Swagger documentation setupSwagger(app); // Error handling app.use(errorHandler); // 404 handler app.use((_req, res) => { res.status(404).json({ error: 'Not found' }); }); export default app;