task 9
Wed Apr 23 2025 01:43:14 GMT+0000 (Coordinated Universal Time)
Saved by @cciot
Task 9: Working with Express & MongoDB to create an Express server with CRUD endpoints for a Users collection using Mongoose. --- ✅ Step 1: Project Setup mkdir express-mongo-users cd express-mongo-users npm init -y npm install express mongoose dotenv ✅ Step 2: Folder Structure express-mongo-users/ ├── models/ │ └── User.js ├── routes/ │ └── userRoutes.js ├── .env ├── server.js ✅ Step 3: Create .env File PORT=5000 MONGO_URI=mongodb://localhost:27017/yourdbname > Replace yourdbname with your actual MongoDB database name. ✅ Step 4: Mongoose User Model – models/User.js const mongoose = require('mongoose'); const userSchema = new mongoose.Schema({ name: { type: String, required: true, }, email: { type: String, required: true, unique: true, }, age: Number }, { timestamps: true }); module.exports = mongoose.model('User', userSchema); ✅ Step 5: User Routes – routes/userRoutes.js const express = require('express'); const router = express.Router(); const User = require('../models/User'); // Create User router.post('/', async (req, res) => { try { const user = await User.create(req.body); res.status(201).json(user); } catch (err) { res.status(400).json({ error: err.message }); } }); // Get All Users router.get('/', async (req, res) => { const users = await User.find(); res.json(users); }); // Get Single User router.get('/:id', async (req, res) => { try { const user = await User.findById(req.params.id); if (!user) return res.status(404).json({ error: 'User not found' }); res.json(user); } catch (err) { res.status(400).json({ error: err.message }); } }); // Update User router.put('/:id', async (req, res) => { try { const user = await User.findByIdAndUpdate(req.params.id, req.body, { new: true }); if (!user) return res.status(404).json({ error: 'User not found' }); res.json(user); } catch (err) { res.status(400).json({ error: err.message }); } }); // Delete User router.delete('/:id', async (req, res) => { try { const result = await User.findByIdAndDelete(req.params.id); if (!result) return res.status(404).json({ error: 'User not found' }); res.json({ message: 'User deleted successfully' }); } catch (err) { res.status(400).json({ error: err.message }); } }); module.exports = router; ✅ Step 6: Server File – server.js const express = require('express'); const mongoose = require('mongoose'); const dotenv = require('dotenv'); const userRoutes = require('./routes/userRoutes'); dotenv.config(); const app = express(); app.use(express.json()); // Connect to MongoDB mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log('MongoDB connected')) .catch((err) => console.error('MongoDB connection error:', err)); // Routes app.use('/api/users', userRoutes); const PORT = process.env.PORT || 5000; app.listen(PORT, () => { console.log(`Server running on port ${PORT}`); }); ✅ Step 7: Run the Server node server.js ✅ Sample API Endpoints (use Postman or curl): POST /api/users – Create a user GET /api/users – Get all users GET /api/users/:id – Get user by ID PUT /api/users/:id – Update user DELETE /api/users/:id – Delete user
Comments