Einführung in die Arbeit mit Datenbanken in JavaScript
Moderne Webentwicklung mit JavaScript ist ohne die Interaktion mit Datenbanken undenkbar. Node.js bietet leistungsstarke Werkzeuge für die Arbeit sowohl mit relationalen (SQL) als auch mit dokumentenorientierten (NoSQL) Datenbanken. In diesem Artikel werden wir die Verbindung und die Durchführung grundlegender Operationen mit den beiden beliebtesten DBMS im JavaScript-Ökosystem im Detail besprechen: PostgreSQL und MongoDB.
Sie erfahren, wie Sie Treiber installieren, die Verbindung konfigurieren, CRUD-Operationen (Create, Read, Update, Delete) ausführen und die richtige Wahl zwischen SQL und NoSQL für Ihr Projekt treffen.
Umgebungsvorbereitung
Für die Arbeit mit den Beispielen benötigen Sie installiertes Node.js (Version 18+) und den Paketmanager npm. Stellen Sie sicher, dass die Datenbanken lokal laufen oder remote verfügbar sind.
1. Arbeit mit PostgreSQL in Node.js
PostgreSQL ist ein leistungsstarkes relationales Open-Source-Datenbanksystem. Für die Arbeit damit in Node.js verwenden wir die Bibliothek pg – den offiziellen Client.
Installation und Verbindung
npm install pgErstellen wir eine Datei db.js zur Konfiguration des Verbindungspools:
const { Pool } = require('pg');
const pool = new Pool({ user: 'postgres', host: 'localhost', database: 'mydb', password: 'secret', port: 5432,});
module.exports = pool;CRUD-Operationen mit PostgreSQL
Betrachten wir grundlegende Abfragen für die Tabelle users:
Tabelle erstellen (CREATE)
const createTable = async () => { const query = ` CREATE TABLE IF NOT EXISTS users ( id SERIAL PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(255) UNIQUE NOT NULL, age INTEGER, created_at TIMESTAMP DEFAULT NOW() ); `; await pool.query(query); console.log('Tabelle users erstellt');};Daten einfügen (INSERT)
const addUser = async (name, email, age) => { const text = 'INSERT INTO users(name, email, age) VALUES($1, $2, $3) RETURNING *'; const values = [name, email, age]; const res = await pool.query(text, values); console.log('Benutzer hinzugefügt:', res.rows[0]); return res.rows[0];};
// VerwendungaddUser('Ivan Petrov', 'ivan@example.com', 30);Daten lesen (SELECT)
const getUsers = async (ageLimit) => { const res = await pool.query( 'SELECT * FROM users WHERE age > $1 ORDER BY created_at DESC', [ageLimit] ); return res.rows;};
// Benutzer älter als 25 Jahre abrufengetUsers(25).then(users => console.log(users));Aktualisieren und Löschen (UPDATE / DELETE)
const updateUser = async (id, newName) => { const res = await pool.query( 'UPDATE users SET name = $1 WHERE id = $2 RETURNING *', [newName, id] ); return res.rows[0];};
const deleteUser = async (id) => { await pool.query('DELETE FROM users WHERE id = $1', [id]); console.log(`Benutzer mit id ${id} gelöscht`);};Wichtig: Verwenden Sie immer parametrisierte Abfragen ($1, $2), um SQL-Injection zu verhindern.
2. Arbeit mit MongoDB in Node.js
MongoDB ist die beliebteste NoSQL-Datenbank, die Daten im Format JSON-ähnlicher Dokumente speichert. Für die Arbeit verwenden wir den offiziellen Treiber mongodb oder die beliebte ODM-Bibliothek mongoose.
Installation und Verbindung (mit mongoose)
npm install mongooseconst mongoose = require('mongoose');
const connectDB = async () => { try { await mongoose.connect('mongodb://localhost:27017/mydb'); console.log('MongoDB verbunden'); } catch (error) { console.error('Verbindungsfehler:', error); }};
connectDB();