โฃ day-6
Perform CRUD operations on MongoDB.
Hereโs a simple full example of CRUD operations (Create - POST, Read - GET, Update - PUT, Delete - DELETE) using Node.js + Express + MongoDB (Mongoose).
crud-app/
โโโ models/
โ โโโ user.js
โโโ routes/
โ โโโ userRoutes.js
โโโ server.js
โโโ .env
โโโ package.json
mkdir crud-app && cd crud-app
npm init -ynpm install express mongoose dotenv
PORT=5000
MONGO_URI=mongodb://localhost:27017/crud-example
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);
routes/userRoutes.js)const express = require("express");
const router = express.Router();
const User = require("../models/user");
router.post("/users", async (req, res) => {
try {
const newUser = new User(req.body);
const saved = await newUser.save();
res.status(201).json(saved);
} catch (err) {
res.status(400).json({ error: err.message }); }
});
router.get("/users", async (req, res) => {
try {
const users = await User.find();
res.json(users); } catch (err) {
res.status(500).json({ error: err.message });
}
});
router.get("/users/: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(500).json({ error: err.message });
}
});
router.put("/users/:id", async (req, res) => {
try {
const updated = await User.findByIdAndUpdate(req.params.id,
req.body, {
new: true, runValidators: true, });
if (!updated)
return res.status(404).json({ error: "User not found" });
res.json(updated); } catch (err) {
res.status(400).json({ error: err.message });
}
});
router.delete("/users/:id", async (req, res) => {
try {
const deleted = await User.findByIdAndDelete(req.params.id);
if (!deleted) return res.status(404).json({ error: "User not found" });
res.json({ message: "User deleted successfully" });
} catch (err) {
res.status(500).json({ error: err.message });
}
});module.exports = router;
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());
app.use("/api", userRoutes);
mongoose.connect(process.env.MONGO_URI, {
useNewUrlParser: true, useUnifiedTopology: true})
.then(() => {
console.log("Connected to MongoDB");
app.listen(process.env.PORT, () => {
console.log(`Server running at <http://localhost>:${process.env.PORT}`); });})
.catch(err => console.error("DB connection error:", err));
POST <http://localhost:5000/api/users>
Content-Type: application/json
{
"name": "John Doe",
"email": "john@example.com",
"age": 30
}