🟢 Node.js als Server
JavaScript trifft auf MariaDB – modern und sicher
🎯 1. Das Ziel
In diesem Kapitel lernst du, wie du:
- Eine sichere Verbindung zwischen Node.js und MariaDB herstellst
- Daten über eine API speicherst und abrufst
- Express.js für Routen nutzt
Im Gegensatz zu PHP läuft Node.js nicht in XAMPP – sondern als eigenständiger Server.
📁 2. Projektordner einrichten
Erstelle einen neuen Ordner in deinem NodeJS-Verzeichnis:
C:\NodeJS\nachrichten-api\
Öffne das Terminal in diesem Ordner und führe aus:
npm init -y
npm install express mysql2
Danach erscheint ein Ordner node_modules – darin liegen alle benötigten Bibliotheken.
🔌 3. Datenbankverbindung herstellen
Erstelle eine Datei db.js:
// db.js – Sichere Verbindung
const mysql = require('mysql2');
const db = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'mini_api',
charset: 'utf8mb4'
});
db.connect((err) => {
if (err) {
console.error('Datenbankverbindung fehlgeschlagen:', err);
process.exit(1);
}
console.log('✅ Verbunden mit MariaDB');
});
module.exports = db;
utf8mb4 für Umlaute und Emojis-
mysql2 ist die moderne, sichere Bibliothek
🌐 4. Webserver mit Express erstellen
Erstelle eine Datei server.js:
// server.js
const express = require('express');
const db = require('./db');
const app = express();
const port = 3000;
app.use(express.json());
app.use(express.static('public')); // Für statische HTML-Dateien
// Route: Alle Nachrichten abrufen
app.get('/api/nachrichten', (req, res) => {
db.query('SELECT * FROM nachrichten ORDER BY id DESC', (err, results) => {
if (err) {
console.error(err);
return res.status(500).json({ fehler: 'Datenbankfehler' });
}
res.json(results);
});
});
// Route: Neue Nachricht speichern
app.post('/api/nachrichten', (req, res) => {
const { name, text } = req.body;
if (!name || !text || name.length < 2 || text.length < 5) {
return res.status(400).json({ fehler: 'Name (mind. 2 Zeichen), Text (mind. 5 Zeichen)' });
}
db.execute('INSERT INTO nachrichten (name, text) VALUES (?, ?)', [name, text], (err) => {
if (err) {
console.error(err);
return res.status(500).json({ fehler: 'Speichern fehlgeschlagen' });
}
res.status(201).json({ status: 'erfolg' });
});
});
app.listen(port, () => {
console.log(`🟢 Server läuft auf http://localhost:${port}`);
});
👁️ 5. Testen im Browser
Starte den Server:
node server.js
Rufe die API im Browser auf:
http://localhost:3000/api/nachrichten
Um Daten zu senden, brauchst du ein Frontend oder ein Tool wie Postman – das lernst du in den Abschlussprojekten.
🔒 6. Sicherheitscheckliste
- ✅ Verwende
mysql2mit Prepared Statements (execute()) - ✅ Prüfe alle Eingaben (Länge, Existenz)
- ✅ Nutze
utf8mb4in der Verbindung - ❌ Niemals direkte SQL-Strings mit Benutzereingaben bauen!
🔄 7. Vergleich zu PHP
| Aspekt | PHP | Node.js |
|---|---|---|
| Server | Läuft in XAMPP (Apache) | Eigener Server (kein XAMPP nötig) |
| Datei | .php in htdocs |
.js in eigenem Ordner |
| Aufruf | http://localhost/name/datei.php |
http://localhost:3000/route |
| Sprache | PHP | JavaScript |