🟢 Node.js als Server

JavaScript trifft auf MariaDB – modern und sicher

🎯 1. Das Ziel

In diesem Kapitel lernst du, wie du:

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;
💡 Merke: - 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.

🔗 W3Schools – Node.js MySQL

🔒 6. Sicherheitscheckliste

🔄 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

🎓 Jetzt kannst du Node.js sicher mit der Datenbank verbinden!

→ Weiter: XAMPP vs. Node.js