MongoDB mit Node.js, Express und Mongoose verbinden: Ein Schritt-für-Schritt Tutorial

Melden

Hier ist ein ausführliches Tutorial, wie du eine MongoDB-Datenbank mit Node.js, Express und Mongoose verbindest.

In diesem Tutorial lernst du, wie du eine REST-API mit Node.js und Express aufbaust und eine Verbindung zu einer MongoDB-Datenbank mithilfe von Mongoose herstellst. Mongoose ist ein leistungsstarkes Tool zur Objektmodellierung (ODM), das die Arbeit mit MongoDB in Node.js erheblich erleichtert.


Voraussetzungen

Bevor wir starten, stelle sicher, dass Folgendes auf deinem System installiert ist:

  • Node.js (und npm)
  • Ein MongoDB-Account (MongoDB Atlas) oder eine lokale MongoDB-Installation.

Schritt 1: Projekt initialisieren

Erstelle einen neuen Ordner für dein Projekt, wechsle hinein und initialisiere ein neues Node.js-Projekt.

mkdir mein-mongodb-projekt
cd mein-mongodb-projekt
npm init -y

Schritt 2: Abhängigkeiten installieren

Wir benötigen drei Hauptpakete:

  1. express: Das Web-Framework.
  2. mongoose: Für die Datenbankverbindung und Modellierung.
  3. dotenv: Um sensible Daten wie die Datenbank-URL sicher in einer Umgebungsvariable zu speichern.

Installiere sie mit folgendem Befehl:

npm install express mongoose dotenv

Schritt 3: Die Umgebungsvariablen konfigurieren

Erstelle eine Datei namens .env im Hauptverzeichnis deines Projekts. Dort speichern wir die Verbindungs-URL deiner MongoDB.

PORT=3000
MONGODB_URI=mongodb+srv://DEIN_BENUTZERNAME:DEIN_PASSWORT@cluster0.mongodb.net/meineDatenbank?retryWrites=true&w=majority

(Hinweis: Ersetze den Link durch deinen echten Connection-String von MongoDB Atlas oder nutze mongodb://localhost:27017/meineDatenbank für eine lokale Datenbank.)

Schritt 4: Den Express-Server und die Verbindung erstellen

Erstelle eine Datei namens index.js (oder server.js) und füge den folgenden Code hinzu:

const express = require('express');
const mongoose = require('mongoose');
require('dotenv').config();

const app = express();
const PORT = process.env.PORT || 3000;

// Middleware, um JSON-Daten zu verarbeiten
app.use(express.json());

// MongoDB Verbindung herstellen
mongoose.connect(process.env.MONGODB_URI)
  .then(() => {
    console.log('Erfolgreich mit MongoDB verbunden');
  })
  .catch((error) => {
    console.error('Fehler beim Verbinden mit MongoDB:', error);
  });

// Beispiel-Route
app.get('/', (req, res) => {
  res.send('Der Server läuft und die Datenbank-Verbindung wird aufgebaut...');
});

// Server starten
app.listen(PORT, () => {
  console.log(`Server läuft auf Port ${PORT}`);
});

Schritt 5: Ein Datenmodell (Schema) erstellen

Mongoose nutzt "Schemas", um die Struktur der Daten in der Datenbank festzulegen. Erstelle einen Ordner models und darin die Datei User.js.

const mongoose = require('mongoose');

const userSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true
  },
  email: {
    type: String,
    required: true,
    unique: true
  },
  alter: Number
});

module.exports = mongoose.model('User', userSchema);

Schritt 6: Daten in die Datenbank schreiben (Beispiel-Route)

Erweitere deine index.js, um einen neuen Benutzer zu erstellen. Dies testet, ob die Verbindung und das Modell funktionieren.

const User = require('./models/User');

// Route zum Erstellen eines Benutzers
app.post('/add-user', async (req, res) => {
  try {
    const newUser = new User({
      name: req.body.name,
      email: req.body.email,
      alter: req.body.alter
    });

    const savedUser = await newUser.save();
    res.status(201).json(savedUser);
  } catch (error) {
    res.status(400).json({ message: error.message });
  }
});

Schritt 7: Den Server testen

  1. Starte deinen Server im Terminal:
    node index.js
  2. Du solltest die Meldung sehen: Server läuft auf Port 3000 und kurz darauf Erfolgreich mit MongoDB verbunden.
  3. Nutze ein Tool wie Postman oder Insomnia, um einen POST-Request an http://localhost:3000/add-user mit einem JSON-Body zu senden:
    {
      "name": "Max Mustermann",
      "email": "max@example.com",
      "alter": 25
    }

Zusammenfassung der wichtigsten Punkte

  • Mongoose.connect(): Initialisiert die Verbindung zur Datenbank.
  • Schema: Definiert, wie deine Daten aussehen (ähnlich wie eine Tabelle in SQL).
  • Model: Ist die Schnittstelle zur Datenbank, mit der du Dokumente erstellen, lesen, aktualisieren und löschen (CRUD) kannst.
  • Dotenv: Schützt deine Zugangsdaten, indem sie nicht direkt im Code stehen.

Du hast nun ein stabiles Grundgerüst für eine Node.js-Anwendung mit MongoDB-Anbindung!

0