Menu
CoddyTech

Verbindung mit MongoDB herstellen

Teil des Abschnitts Datenbanken mit MongoDB der Node.js-Journey von Coddy. Lektion 1 von 18.

Ein Array auf einem Server geht jedes Mal verloren, wenn der Server angehalten wird. Eine Datenbank bewahrt die Daten auf. MongoDB ist ein Datenbankserver, der Dokumente speichert: JSON-ähnliche Objekte. Dokumente befinden sich in Sammlungen, und Sammlungen befinden sich in einer Datenbank.

import { MongoClient } from 'mongodb';

const client = new MongoClient('mongodb://localhost:27017');
const movies = client.db('cinema').collection('movies');

await movies.insertOne({ title: 'Alien', year: 1979 });
const all = await movies.find().toArray();

Der Client kommuniziert mit dem Datenbankserver unter dieser Adresse. insertOne speichert ein Dokument. find() liefert einen Cursor, ein Objekt, das die Ergebnisse erst auf Anfrage ausliest, und toArray() liest sie alle in ein Array ein. Jeder Aufruf greift auf die Datenbank zu, daher braucht jeder davon await.

Hier startet Run eine leere MongoDB im Arbeitsspeicher, und der Tab Data zeigt ihre Sammlungen. Das Startprogramm fügt mit insertMany drei Bücher ein; diese Methode erwartet ein Array mit Dokumenten.

challenge icon

Aufgabe

Einfach
  • Füge GET /books hinzu: Dieser Endpunkt gibt jedes Dokument in der Sammlung books als JSON-Array zurück.

Klicke auf Run und öffne den Tab Data, um die drei Bücher zu sehen. Sende dann GET /books.

Probier es selbst

import express from 'express';
import { MongoClient } from 'mongodb';

const client = new MongoClient('mongodb://localhost:27017');
const db = client.db('shelf');
const books = db.collection('books');

await books.insertMany([
    { title: 'Dune', author: 'Frank Herbert', year: 1965, isbn: '9780441013593', genre: 'scifi' },
    { title: 'Kindred', author: 'Octavia E. Butler', year: 1979, isbn: '9780807083697', genre: 'scifi' },
    { title: 'Emma', author: 'Jane Austen', year: 1815, isbn: '9780141439587', genre: 'classic' },
]);

const app = express();
app.use(express.json());

// Jeder Fehler gibt { error: message } zurück.
function sendError(res, status, message) {
    res.status(status).json({ error: message });
}

app.get('/', (req, res) => {
    res.send('Bookshelf API');
});

// Füge GET /books hier hinzu.

app.listen(3000, () => {
    console.log('Bookshelf is running on port 3000');
});
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Datenbanken mit MongoDB