48 lines
1.2 KiB
JavaScript
48 lines
1.2 KiB
JavaScript
import express from 'express';
|
|
import mongoose from 'mongoose';
|
|
import cors from 'cors';
|
|
import dotenv from 'dotenv';
|
|
import authRoutes from './routes/auth.js';
|
|
import todoRoutes from './routes/todos.js';
|
|
import { authenticateToken } from './middleware/auth.js';
|
|
|
|
dotenv.config();
|
|
|
|
const app = express();
|
|
const PORT = process.env.PORT || 5000;
|
|
|
|
// Middleware
|
|
app.use(cors());
|
|
app.use(express.json());
|
|
|
|
// Root route
|
|
app.get('/', (req, res) => {
|
|
res.json({ message: 'Todo App Backend API is running!' });
|
|
});
|
|
|
|
// Routes
|
|
app.use('/api/auth', authRoutes);
|
|
app.use('/api/todos', authenticateToken, todoRoutes);
|
|
|
|
// Error handling middleware
|
|
app.use((err, req, res, next) => {
|
|
console.error('Error:', err);
|
|
res.status(500).json({ message: 'Internal server error', error: err.message });
|
|
});
|
|
|
|
// MongoDB connection
|
|
mongoose.connect(process.env.MONGO_URL)
|
|
.then(() => {
|
|
console.log('✅ Connected to MongoDB');
|
|
console.log('Database:', process.env.MONGO_URL);
|
|
})
|
|
.catch((err) => {
|
|
console.error('❌ MongoDB connection error:', err.message);
|
|
console.log('Make sure MongoDB is running on your system');
|
|
process.exit(1);
|
|
});
|
|
|
|
app.listen(PORT, () => {
|
|
console.log(`🚀 Server running on port ${PORT}`);
|
|
|
|
}); |