Menu
CoddyTech

Łączenie z MongoDB

Część sekcji Bazy danych z MongoDB ścieżki Node.js w Coddy. Lekcja 1 z 18.

Tablica na serwerze znika za każdym razem, gdy serwer przestaje działać. Baza danych przechowuje dane. MongoDB to serwer baz danych, który przechowuje dokumenty: obiekty przypominające JSON. Dokumenty znajdują się w kolekcjach, a kolekcje w bazie danych.

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();

Klient komunikuje się z serwerem bazy danych pod tym adresem. insertOne zapisuje jeden dokument. find() zwraca kursor — obiekt, który odczytuje wyniki dopiero na żądanie — a toArray() odczytuje je wszystkie do tablicy. Każde wywołanie łączy się z bazą danych, więc każde wymaga await.

Tutaj przycisk Run uruchamia pustą bazę MongoDB w pamięci, a karta Data pokazuje jej kolekcje. Kod początkowy dodaje trzy książki za pomocą insertMany, które przyjmuje tablicę dokumentów.

challenge icon

Wyzwanie

Łatwy
  • Dodaj GET /books: zwraca każdy dokument z kolekcji books jako tablicę JSON.

Naciśnij Run i otwórz kartę Data, aby zobaczyć trzy książki. Następnie wyślij GET /books.

Spróbuj swoich sił

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());

// Każdy błąd zwraca odpowiedź { error: message }.
function sendError(res, status, message) {
    res.status(status).json({ error: message });
}

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

// Dodaj tutaj GET /books.

app.listen(3000, () => {
    console.log('Bookshelf is running on port 3000');
});
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Bazy danych z MongoDB