Einführung in die Arbeit mit Datenbanken in JavaScript (Node.js)
\nModerne Webentwicklung kommt selten ohne Interaktion mit Datenbanken aus. Ob es um die Speicherung von Benutzern, Blogbeiträgen oder Analysedaten geht – die Fähigkeit, mit Datenbanken (DBs) zu arbeiten, ist eine unverzichtbare Fähigkeit für jeden Entwickler. In diesem Artikel betrachten wir zwei der beliebtesten Datenbanktypen: die relationale PostgreSQL und die dokumentenorientierte MongoDB. Wir schreiben einfache Beispiele in JavaScript (Node.js), die Ihnen den Einstieg in beide Systeme erleichtern.
\n\n1. Vorbereitung der Umgebung und Installation der Abhängigkeiten
\nBevor wir Code schreiben, müssen wir die Treiber für die Interaktion von Node.js mit den ausgewählten Datenbanken installieren. Erstellen Sie dazu ein neues Projekt und installieren Sie die Pakete über npm.
\n\nInstallation der Treiber
\n- \n
- pg – ein beliebter Client für PostgreSQL. \n
- mongoose – ein ODM (Object Document Mapper) für MongoDB, der die Arbeit mit Sammlungen vereinfacht. \n
mkdir db-example && cd db-example\nnpm init -y\nnpm install pg mongoose\n\nIhre Umgebung ist nun bereit für Experimente.
\n\n2. Arbeiten mit PostgreSQL von Node.js aus
\nPostgreSQL ist eine leistungsstarke relationale Datenbank, die SQL für Abfragen verwendet. Wir stellen eine Verbindung zu einem lokalen Server her, erstellen eine Tabelle und führen grundlegende CRUD-Operationen (Create, Read, Update, Delete) durch.
\n\nVerbindung zur Datenbank herstellen
\nErstellen Sie eine Datei postgres.js und fügen Sie den folgenden Code für die Verbindung hinzu:
const { Pool } = require('pg');\n\nconst pool = new Pool({\n user: 'your_username',\n host: 'localhost',\n database: 'testdb',\n password: 'your_password',\n port: 5432,\n});\n\nasync function connect() {\n try {\n const client = await pool.connect();\n console.log('Mit PostgreSQL verbunden');\n client.release();\n } catch (err) {\n console.error('Verbindungsfehler:', err);\n }\n}\n\nconnect();\n\nTabelle erstellen und Daten einfügen
\nFügen wir nun eine Funktion zum Erstellen der Tabelle users und zum Einfügen von Datensätzen hinzu:
async function createTable() {\n const query = `\n CREATE TABLE IF NOT EXISTS users (\n id SERIAL PRIMARY KEY,\n name VARCHAR(100) NOT NULL,\n email VARCHAR(100) UNIQUE NOT NULL\n );\n `;\n await pool.query(query);\n console.log('Tabelle users erstellt');\n}\n\nasync function insertUser(name, email) {\n const query = 'INSERT INTO users (name, email) VALUES ($1, $2) RETURNING *';\n const values = [name, email];\n const res = await pool.query(query, values);\n console.log('Benutzer hinzugefügt:', res.rows[0]);\n}\n\n// Beispielverwendung\ncreateTable().then(() => insertUser('Ivan', 'ivan@example.com'));\n\nDaten lesen und aktualisieren
\nRufen wir alle Benutzer ab und aktualisieren die E-Mail:
\nasync function getUsers() {\n const res = await pool.query('SELECT * FROM users');\n console.log('Alle Benutzer:', res.rows);\n}\n\nasync function updateUserEmail(id, newEmail) {\n const query = 'UPDATE users SET email = $1 WHERE id = $2 RETURNING *';\n const res = await pool.query(query, [newEmail, id]);\n console.log('Benutzer aktualisiert:', res.rows[0]);\n}\n\ngetUsers().then(() => updateUserEmail(1, 'ivan_new@example.com'));\n\nPostgreSQL eignet sich hervorragend für Projekte, bei denen Datenintegrität und komplexe Beziehungen zwischen Tabellen wichtig sind.
\n\n3. Arbeiten mit MongoDB von Node.js aus
\nMongoDB ist eine NoSQL-Datenbank, die Daten in einem JSON-ähnlichen Format (BSON) speichert. Sie ist flexibel und erfordert kein striktes Schema. Für die Arbeit verwenden wir Mongoose.
\n\nVerbindung zu MongoDB herstellen
\nErstellen Sie eine Datei mongo.js:
const mongoose = require('mongoose');\n\nconst connectDB = async