الإعداد
import express from "express";
import mongoose from "mongoose";
const app = express();
app.use(express.json());
await mongoose.connect(process.env.MONGODB_URI);
نموذج
const Task = mongoose.model("Task", new mongoose.Schema({
title: String,
done: { type: Boolean, default: false }
}));
مسارات CRUD
// إنشاء
app.post("/tasks", async (req, res) => {
const task = await Task.create(req.body);
res.status(201).json(task);
});
// قراءة الكل
app.get("/tasks", async (req, res) => {
res.json(await Task.find());
});
// قراءة واحد
app.get("/tasks/:id", async (req, res) => {
const task = await Task.findById(req.params.id);
if (!task) return res.status(404).json({ error: "غير موجود" });
res.json(task);
});
// تحديث
app.put("/tasks/:id", async (req, res) => {
res.json(await Task.findByIdAndUpdate(req.params.id, req.body, { new: true }));
});
// حذف
app.delete("/tasks/:id", async (req, res) => {
await Task.findByIdAndDelete(req.params.id);
res.status(204).end();
});
app.listen(3000);
🎯 التالي: المعاملات (Transactions).