29 lines
777 B
JavaScript
29 lines
777 B
JavaScript
|
|
const express = require('express');
|
||
|
|
const bodyParser = require('body-parser');
|
||
|
|
const cors = require('cors');
|
||
|
|
const routes = require('./src/routes/index');
|
||
|
|
const { logger } = require('./utils/logger');
|
||
|
|
|
||
|
|
const app = express();
|
||
|
|
|
||
|
|
// Middleware setup
|
||
|
|
app.use(cors()); // Enable CORS for all routes
|
||
|
|
app.use(bodyParser.json()); // Parse JSON request bodies
|
||
|
|
app.use(bodyParser.urlencoded({ extended: true })); // Parse URL-encoded request bodies
|
||
|
|
|
||
|
|
// Logger middleware
|
||
|
|
app.use((req, res, next) => {
|
||
|
|
logger.info(`${req.method} ${req.url}`);
|
||
|
|
next();
|
||
|
|
});
|
||
|
|
|
||
|
|
// Routes setup
|
||
|
|
app.use('/api', routes);
|
||
|
|
|
||
|
|
// Error handling middleware
|
||
|
|
app.use((err, req, res, next) => {
|
||
|
|
logger.error(err.message);
|
||
|
|
res.status(500).json({ error: 'Internal Server Error' });
|
||
|
|
});
|
||
|
|
|
||
|
|
module.exports = app;
|