Files
app-store-optimization/skills/loki-mode/examples/todo-app-generated/backend/src/index.ts

45 lines
1011 B
TypeScript

import express, { Express, Request, Response } from 'express';
import cors from 'cors';
import { initializeDatabase, closeDatabase } from './db';
import todosRouter from './routes/todos';
const app: Express = express();
const PORT = process.env.PORT || 3001;
// Middleware
app.use(cors());
app.use(express.json());
// Initialize database on startup
try {
initializeDatabase();
} catch (error) {
console.error('Failed to initialize database:', error);
process.exit(1);
}
// Routes
app.use('/api', todosRouter);
// Health check endpoint
app.get('/health', (_req: Request, res: Response) => {
res.json({ status: 'ok', message: 'Backend server is running' });
});
// Start server
const server = app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
// Graceful shutdown
process.on('SIGINT', () => {
console.log('Shutting down gracefully...');
closeDatabase();
server.close(() => {
console.log('Server closed');
process.exit(0);
});
});
export default app;