Files
scoffer/backend/server.js

48 lines
1.3 KiB
JavaScript

const express = require('express');
const cors = require('cors');
const mongoose = require('mongoose');
require('dotenv').config();
const app = express();
const PORT = process.env.PORT || 5000;
// Middleware
app.use(cors());
app.use(express.json());
// MongoDB connection
const MONGODB_HOST = process.env.MONGODB_HOST || 'mongodb';
const MONGODB_PORT = process.env.MONGODB_PORT || '27017';
const MONGODB_DATABASE = process.env.MONGODB_DATABASE || 'scoffer';
const MONGODB_URI = `mongodb://${MONGODB_HOST}:${MONGODB_PORT}/${MONGODB_DATABASE}`;
console.log('Connecting to MongoDB with URI:', MONGODB_URI);
mongoose.connect(MONGODB_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
serverSelectionTimeoutMS: 30000, // 30 seconds
connectTimeoutMS: 30000, // 30 seconds
socketTimeoutMS: 30000, // 30 seconds
});
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection error:'));
db.once('open', () => {
console.log('Connected to MongoDB');
});
// Routes
app.use('/api/recipes', require('./routes/recipes'));
app.use('/api/users', require('./routes/users'));
app.use('/api/selections', require('./routes/selections'));
app.get('/', (req, res) => {
res.json({ message: 'Scoffer API is running!' });
});
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});