import 'dotenv/config'; import express from 'express'; import cors from 'cors'; import path from 'path'; import { fileURLToPath } from 'url'; import db from './models/db.js'; import entriesRouter from './routes/entries.js'; import foodsRouter from './routes/foods.js'; import summaryRouter from './routes/summary.js'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const app = express(); const PORT = process.env.PORT || 3000; // Middleware app.use(cors()); app.use(express.json()); // Serve uploaded files statically app.use('/uploads', express.static(path.join(__dirname, process.env.UPLOAD_DIR || '../uploads'))); // API Routes app.use('/api/entries', entriesRouter); app.use('/api/foods', foodsRouter); app.use('/api/summary', summaryRouter); // Health check app.get('/api/health', (req, res) => { res.json({ status: 'ok', timestamp: new Date().toISOString() }); }); // Initialize database and start server db.initialize() .then(() => { app.listen(PORT, () => { console.log(`Meal Tracker API running on port ${PORT}`); }); }) .catch(err => { console.error('Failed to initialize database:', err); process.exit(1); }); export default app;