const express = require('express'); const cors = require('cors'); const { logger, requestLogger } = require('./util/logger'); const routes = require('./routes'); const app = express(); app.use(cors()); app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.use((req, res, next) => { const start = Date.now(); res.on('finish', () => { requestLogger.info( { ip: req.ip || req.connection.remoteAddress, method: req.method, url: req.originalUrl, headers: req.headers, body: req.body, status: res.statusCode, responseTime: `${Date.now() - start}ms`, }, 'Incoming request' ); }); next(); }); app.use('/api', routes); app.get('/health', (_, res) => res.send('server is healthy')); app.use((err, _req, res, _next) => { logger.error(err, 'uncaught error'); res.status(500).json({ error: 'INTERNAL SERVER ERROR' }); }); module.exports = app;