Heim >Web-Frontend >js-Tutorial >CRUD-Operationen mit Express.js und MongoDB

CRUD-Operationen mit Express.js und MongoDB

DDD
DDDOriginal
2024-12-20 14:34:14314Durchsuche

CRUD Operations with Express.js and MongoDB

Diese Anleitung erklärt, wie CRUD-Vorgänge (Erstellen, Lesen, Aktualisieren, Löschen) mit Express.js und MongoDB implementiert werden. CRUD ist ein grundlegendes Konzept für die Interaktion mit Datenbanken und für die meisten Webanwendungen unerlässlich.

Voraussetzungen

  • Grundkenntnisse in JavaScript, Node.js und Express.js.
  • MongoDB lokal installiert oder Zugriff auf einen MongoDB-Cloud-Dienst (z. B. MongoDB Atlas).
  • npm installiert.

Projekt-Setup

  1. Initialisieren Sie ein Node.js-Projekt:
   mkdir crud-express-mongodb
   cd crud-express-mongodb
   npm init -y
  1. Abhängigkeiten installieren:
   npm install express mongoose body-parser cors dotenv
  1. Erstellen Sie die folgende Ordnerstruktur:
   crud-express-mongodb/
   |-- models/
   |-- routes/
   |-- .env
   |-- server.js

Schritt 1: MongoDB-Verbindung einrichten

Datei: .env

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

Datei: 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}`));

Schritt 2: Erstellen Sie ein MongoDB-Schema

Datei: 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);

Schritt 3: CRUD-Routen implementieren

Datei: Routen/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;

Schritt 4: Testen der API

Verwenden Sie Tools wie Postman oder cURL, um die folgenden Endpunkte zu testen:

  1. Einen Artikel erstellen:
   POST /api/items
   Content-Type: application/json
   {
     "name": "Laptop",
     "description": "A powerful laptop",
     "price": 1200
   }
  1. Alle Artikel erhalten:
   GET /api/items
  1. Einen Artikel anhand der ID abrufen:
   GET /api/items/:id
  1. Einen Artikel aktualisieren:
   PUT /api/items/:id
   Content-Type: application/json
   {
     "name": "Gaming Laptop",
     "description": "A high-end gaming laptop",
     "price": 1500
   }
  1. Ein Element löschen:
   DELETE /api/items/:id

Das obige ist der detaillierte Inhalt vonCRUD-Operationen mit Express.js und MongoDB. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn