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

CRUD-Operationen mit Express.js und MongoDB

DDD
Freigeben: 2024-12-20 14:34:14
Original
334 Leute haben es durchsucht

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
Nach dem Login kopieren
  1. Abhängigkeiten installieren:
   npm install express mongoose body-parser cors dotenv
Nach dem Login kopieren
  1. Erstellen Sie die folgende Ordnerstruktur:
   crud-express-mongodb/
   |-- models/
   |-- routes/
   |-- .env
   |-- server.js
Nach dem Login kopieren

Schritt 1: MongoDB-Verbindung einrichten

Datei: .env

MONGO_URI=mongodb://localhost:27017/crudDB
PORT=5000
Nach dem Login kopieren

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}`));
Nach dem Login kopieren

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);
Nach dem Login kopieren

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;
Nach dem Login kopieren

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
   }
Nach dem Login kopieren
  1. Alle Artikel erhalten:
   GET /api/items
Nach dem Login kopieren
  1. Einen Artikel anhand der ID abrufen:
   GET /api/items/:id
Nach dem Login kopieren
  1. Einen Artikel aktualisieren:
   PUT /api/items/:id
   Content-Type: application/json
   {
     "name": "Gaming Laptop",
     "description": "A high-end gaming laptop",
     "price": 1500
   }
Nach dem Login kopieren
  1. Ein Element löschen:
   DELETE /api/items/:id
Nach dem Login kopieren

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!

Quelle:dev.to
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage