russ_react/server/index.ts

45 lines
1.2 KiB
TypeScript

import express from 'express';
import cors from 'cors';
import dotenv from 'dotenv';
import { logger, stream } from './config/logger.js';
import { requestLogger } from './middleware/logging/requestLogger.js';
import { errorLogger } from './middleware/error/errorLogger.js';
import authRoutes from './routes/auth/index.js';
import articleRoutes from './routes/articles/index.js';
import userRoutes from './routes/users/index.js';
// Load environment variables
dotenv.config();
const app = express();
// Middleware
app.use(cors());
app.use(express.json());
app.use(requestLogger);
// Routes
app.use('/api/auth', authRoutes);
app.use('/api/articles', articleRoutes);
app.use('/api/users', userRoutes);
// Error handling
app.use(errorLogger);
const PORT = process.env.PORT || 5000;
app.listen(PORT, () => {
logger.info(`Server running on port ${PORT}`);
});
// Handle uncaught exceptions
process.on('uncaughtException', (error) => {
logger.error('Uncaught Exception:', error);
process.exit(1);
});
// Handle unhandled promise rejections
process.on('unhandledRejection', (reason, promise) => {
logger.error('Unhandled Rejection at:', promise, 'reason:', reason);
process.exit(1);
});