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); });