ホームページ > ウェブフロントエンド > jsチュートリアル > Express.js と MongoDB を使用した CRUD 操作

Express.js と MongoDB を使用した CRUD 操作

DDD
リリース: 2024-12-20 14:34:14
オリジナル
309 人が閲覧しました

CRUD Operations with Express.js and MongoDB

このガイドでは、Express.js と MongoDB を使用して CRUD (作成、読み取り、更新、削除) 操作を実装する方法について説明します。 CRUD はデータベースと対話するための基本的な概念であり、ほとんどの Web アプリケーションに不可欠です。

前提条件

  • JavaScript、Node.js、Express.js の基本的な知識
  • ローカルにインストールされた MongoDB、または MongoDB クラウド サービス (MongoDB Atlas など) にアクセスします。
  • npm がインストールされました。

プロジェクトのセットアップ

  1. Node.js プロジェクトを初期化します。
   mkdir crud-express-mongodb
   cd crud-express-mongodb
   npm init -y
ログイン後にコピー
  1. 依存関係をインストールします。
   npm install express mongoose body-parser cors dotenv
ログイン後にコピー
  1. 次のフォルダー構造を作成します。
   crud-express-mongodb/
   |-- models/
   |-- routes/
   |-- .env
   |-- server.js
ログイン後にコピー

ステップ 1: MongoDB 接続のセットアップ

ファイル: .env

MONGO_URI=mongodb://localhost:27017/crudDB
PORT=5000
ログイン後にコピー

ファイル: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}`));
ログイン後にコピー

ステップ 2: MongoDB スキーマを作成する

ファイル: 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);
ログイン後にコピー

ステップ 3: CRUD ルートを実装する

ファイル: ルート/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;
ログイン後にコピー

ステップ 4: API のテスト

Postman や cURL などのツールを使用して、次のエンドポイントをテストします。

  1. アイテムを作成します:
   POST /api/items
   Content-Type: application/json
   {
     "name": "Laptop",
     "description": "A powerful laptop",
     "price": 1200
   }
ログイン後にコピー
  1. すべてのアイテムを入手:
   GET /api/items
ログイン後にコピー
  1. ID でアイテムを取得します:
   GET /api/items/:id
ログイン後にコピー
  1. アイテムを更新します:
   PUT /api/items/:id
   Content-Type: application/json
   {
     "name": "Gaming Laptop",
     "description": "A high-end gaming laptop",
     "price": 1500
   }
ログイン後にコピー
  1. アイテムを削除します:
   DELETE /api/items/:id
ログイン後にコピー

以上がExpress.js と MongoDB を使用した CRUD 操作の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート