const app = require('./src/app'); const dbInitializer = require('./src/database/init'); const dbConnection = require('./src/database/connection'); const PORT = process.env.PORT || 3001; // Initialize database and start server async function startServer() { try { console.log('🚀 Starting Bookmark Manager Backend...'); // Initialize database await dbInitializer.initialize(); // Start the server const server = app.listen(PORT, () => { console.log(`✅ Server is running on port ${PORT}`); console.log(`🌍 Environment: ${process.env.NODE_ENV || 'development'}`); console.log(`🔗 Health check: http://localhost:${PORT}/health`); }); // Graceful shutdown handling process.on('SIGTERM', async () => { console.log('🛑 SIGTERM received, shutting down gracefully...'); server.close(async () => { await dbConnection.close(); process.exit(0); }); }); process.on('SIGINT', async () => { console.log('🛑 SIGINT received, shutting down gracefully...'); server.close(async () => { await dbConnection.close(); process.exit(0); }); }); } catch (error) { console.error('❌ Failed to start server:', error); process.exit(1); } } startServer();