48 lines
1.3 KiB
JavaScript
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}`);
|
|
});
|