diff --git a/config/database.js b/config/database.js index 7553abb..abbe10e 100644 --- a/config/database.js +++ b/config/database.js @@ -1,3 +1,20 @@ -module.exports = { - mongoURI: 'mongodb://localhost/tododb-dev' -} +const mongoose = require('mongoose'); + +const options = { + useNewUrlParser: true, + useUnifiedTopology: true, + poolSize: 10, // Maintain up to 10 socket connections + serverSelectionTimeoutMS: 5000, // Retry for 5 seconds + socketTimeoutMS: 45000, // Close sockets after 45 seconds of inactivity +}; + +// Enable detailed logging for MongoDB queries to track performance +mongoose.set('debug', true); + +mongoose.connect(process.env.MONGO_URI || 'mongodb://localhost/tododb-dev', options) + .then(() => console.log('Database connected successfully')) + .catch((err) => { + console.error('Initial connection error:', err); + process.exit(1); + }); + diff --git a/models/Todo.js b/models/Todo.js index acb767a..0748753 100644 --- a/models/Todo.js +++ b/models/Todo.js @@ -24,4 +24,7 @@ const TodoSchema = new Schema({ } }); -mongoose.model('todos', TodoSchema); \ No newline at end of file +// Add indexing for faster queries +TodoSchema.index({ title: 1, user: 1 }); + +mongoose.model('todos', TodoSchema);