Maison > interface Web > js tutoriel > Opérations CRUD avec Express.js et MongoDB

Opérations CRUD avec Express.js et MongoDB

DDD
Libérer: 2024-12-20 14:34:14
original
410 Les gens l'ont consulté

CRUD Operations with Express.js and MongoDB

Ce guide explique comment implémenter les opérations CRUD (Create, Read, Update, Delete) à l'aide d'Express.js et MongoDB. CRUD est un concept fondamental pour interagir avec les bases de données et est essentiel pour la plupart des applications Web.

Conditions préalables

  • Connaissance de base de JavaScript, Node.js et Express.js.
  • MongoDB installé localement ou accès à un service cloud MongoDB (par exemple, MongoDB Atlas).
  • npm installé.

Configuration du projet

  1. Initialiser un projet Node.js :
   mkdir crud-express-mongodb
   cd crud-express-mongodb
   npm init -y
Copier après la connexion
  1. Installer les dépendances :
   npm install express mongoose body-parser cors dotenv
Copier après la connexion
  1. Créez la structure de dossiers suivante :
   crud-express-mongodb/
   |-- models/
   |-- routes/
   |-- .env
   |-- server.js
Copier après la connexion

Étape 1 : Configurer la connexion MongoDB

Fichier : .env

MONGO_URI=mongodb://localhost:27017/crudDB
PORT=5000
Copier après la connexion

Fichier : serveur.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}`));
Copier après la connexion

Étape 2 : Créer un schéma MongoDB

Fichier : 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);
Copier après la connexion

Étape 3 : implémenter les routes CRUD

Fichier : routes/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;
Copier après la connexion

Étape 4 : tester l'API

Utilisez des outils comme Postman ou cURL pour tester les points de terminaison suivants :

  1. Créer un article :
   POST /api/items
   Content-Type: application/json
   {
     "name": "Laptop",
     "description": "A powerful laptop",
     "price": 1200
   }
Copier après la connexion
  1. Obtenez tous les articles :
   GET /api/items
Copier après la connexion
  1. Obtenir un article par ID :
   GET /api/items/:id
Copier après la connexion
  1. Mettre à jour un élément :
   PUT /api/items/:id
   Content-Type: application/json
   {
     "name": "Gaming Laptop",
     "description": "A high-end gaming laptop",
     "price": 1500
   }
Copier après la connexion
  1. Supprimer un élément :
   DELETE /api/items/:id
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal