Rumah >hujung hadapan web >tutorial js >Operasi CRUD dengan Express.js dan MongoDB

Operasi CRUD dengan Express.js dan MongoDB

DDD
DDDasal
2024-12-20 14:34:14310semak imbas

CRUD Operations with Express.js and MongoDB

Panduan ini menerangkan cara melaksanakan operasi CRUD (Buat, Baca, Kemas Kini, Padam) menggunakan Express.js dan MongoDB. CRUD ialah konsep asas untuk berinteraksi dengan pangkalan data dan penting untuk kebanyakan aplikasi web.

Prasyarat

  • Pengetahuan asas JavaScript, Node.js dan Express.js.
  • MongoDB dipasang secara setempat atau akses kepada perkhidmatan awan MongoDB (cth., MongoDB Atlas).
  • npm dipasang.

Persediaan Projek

  1. Memulakan projek Node.js:
   mkdir crud-express-mongodb
   cd crud-express-mongodb
   npm init -y
  1. Pasang kebergantungan:
   npm install express mongoose body-parser cors dotenv
  1. Buat struktur folder berikut:
   crud-express-mongodb/
   |-- models/
   |-- routes/
   |-- .env
   |-- server.js

Langkah 1: Sediakan Sambungan MongoDB

Fail: .env

MONGO_URI=mongodb://localhost:27017/crudDB
PORT=5000

Fail: server.js

const express = require("express");
const mongoose = require("mongoose");
const bodyParser = require("body-parser");
const cors = require("cors");
require("dotenv").config();

const app = express();

// Middleware
app.use(bodyParser.json());
app.use(cors());

// MongoDB Connection
mongoose
  .connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true })
  .then(() => console.log("MongoDB Connected"))
  .catch((err) => console.error("MongoDB connection error:", err));

// Routes
const itemRoutes = require("./routes/itemRoutes");
app.use("/api/items", itemRoutes);

// Start Server
const PORT = process.env.PORT || 5000;
app.listen(PORT, () => console.log(`Server running on port ${PORT}`));

Langkah 2: Buat Skema MongoDB

Fail: models/Item.js

const mongoose = require("mongoose");

const itemSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true,
  },
  description: {
    type: String,
    required: true,
  },
  price: {
    type: Number,
    required: true,
  },
}, { timestamps: true });

module.exports = mongoose.model("Item", itemSchema);

Langkah 3: Laksanakan Laluan CRUD

Fail: route/itemRoutes.js

const express = require("express");
const router = express.Router();
const Item = require("../models/Item");

// Create an item
router.post("/", async (req, res) => {
  try {
    const newItem = new Item(req.body);
    const savedItem = await newItem.save();
    res.status(201).json(savedItem);
  } catch (err) {
    res.status(500).json({ error: err.message });
  }
});

// Get all items
router.get("/", async (req, res) => {
  try {
    const items = await Item.find();
    res.status(200).json(items);
  } catch (err) {
    res.status(500).json({ error: err.message });
  }
});

// Get an item by ID
router.get("/:id", async (req, res) => {
  try {
    const item = await Item.findById(req.params.id);
    if (!item) return res.status(404).json({ error: "Item not found" });
    res.status(200).json(item);
  } catch (err) {
    res.status(500).json({ error: err.message });
  }
});

// Update an item by ID
router.put("/:id", async (req, res) => {
  try {
    const updatedItem = await Item.findByIdAndUpdate(req.params.id, req.body, { new: true });
    if (!updatedItem) return res.status(404).json({ error: "Item not found" });
    res.status(200).json(updatedItem);
  } catch (err) {
    res.status(500).json({ error: err.message });
  }
});

// Delete an item by ID
router.delete("/:id", async (req, res) => {
  try {
    const deletedItem = await Item.findByIdAndDelete(req.params.id);
    if (!deletedItem) return res.status(404).json({ error: "Item not found" });
    res.status(200).json({ message: "Item deleted" });
  } catch (err) {
    res.status(500).json({ error: err.message });
  }
});

module.exports = router;

Langkah 4: Menguji API

Gunakan alatan seperti Posmen atau cURL untuk menguji titik akhir berikut:

  1. Buat item:
   POST /api/items
   Content-Type: application/json
   {
     "name": "Laptop",
     "description": "A powerful laptop",
     "price": 1200
   }
  1. Dapatkan semua item:
   GET /api/items
  1. Dapatkan item dengan ID:
   GET /api/items/:id
  1. Kemas kini item:
   PUT /api/items/:id
   Content-Type: application/json
   {
     "name": "Gaming Laptop",
     "description": "A high-end gaming laptop",
     "price": 1500
   }
  1. Padamkan item:
   DELETE /api/items/:id

Atas ialah kandungan terperinci Operasi CRUD dengan Express.js dan MongoDB. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn