Koa.js-Projekte mit ServBay erstellen und betreiben
ServBay ist eine lokale Web-Entwicklungsumgebung für macOS und Windows, die zahlreiche gängige Entwickler-Tools integriert, darunter auch Node.js-Runtimes und verschiedene Datenbanken. In dieser Anleitung erfahren Sie, wie Sie die komfortable Umgebung von ServBay nutzen, um Koa.js-Projekte schnell zu erstellen, zu betreiben und zu verwalten.
Was ist Koa.js?
Koa.js ist ein modernes Web-Framework, das von den Entwicklern von Express.js auf Basis von Node.js entwickelt wurde. Es zeichnet sich durch seine schlanke Struktur, Ausdrucksstärke und sein leistungsstarkes Feature-Set aus – ideal zum Erstellen von Webanwendungen und APIs. Dank moderner JavaScript-Funktionalitäten, insbesondere der async/await
-Syntax, wird asynchrone Programmierung und Middlewares deutlich vereinfacht, wodurch Ihr Code übersichtlich und gut wartbar bleibt.
Hauptmerkmale von Koa.js
- Async/Await-basiert: Das Design dreht sich um
async/await
, was die Kontrolle über asynchrone Abläufe besonders intuitiv macht. - Leichtgewichtiger Kern: Die Kernbibliothek ist bewusst klein gehalten und enthält nur Grundfunktionen; sämtliche Erweiterungen erfolgen modular über Middlewares.
- Leistungsfähiges Middleware-System: Koa verwendet ein kaskadierendes Middleware-Konzept, das die Abfolge und Flexibilität der Request-Verarbeitung erhöht.
- Web-Fokus: Konzentration auf Webanwendungen und APIs, ohne überflüssige Zusatzfunktionen.
Mit Koa.js können Entwickler effizient performante und wartbare Webdienste bauen.
Koa.js-Entwicklungsumgebung mit ServBay einrichten
ServBay bietet Node.js-Entwicklern eine gebrauchsfertige und benutzerfreundliche Umgebung mit integriertem Node.js-Runtime und gängigen Datenbankdiensten. Mit der Website-Funktion von ServBay greifen Sie bequem über eigene Domains und SSL-Zertifikate auf Ihr lokales Koa.js-Projekt zu.
Voraussetzungen
Bevor Sie beginnen, stellen Sie bitte Folgendes sicher:
- ServBay installieren: Laden Sie die aktuelle ServBay-Version von der ServBay-Offiziellen Webseite herunter und installieren Sie sie.
- Node.js-Paket installieren: Öffnen Sie ServBay, navigieren Sie zum Pakete (Packages)-Manager und installieren Sie die gewünschte Node.js-Version. Falls noch nicht vorhanden, markieren Sie diese und starten die Installation.
- Mit ServBay vertraut machen: Lernen Sie, wie Sie Dienste und Websites in ServBay starten, stoppen und verwalten.
Koa.js-Projekt erstellen
Wir nutzen das von ServBay empfohlene Web-Stammverzeichnis /Applications/ServBay/www
als Speicherort für Projektdateien.
Projektverzeichnis initialisieren
Öffnen Sie das Terminal, wechseln Sie ins Stammverzeichnis von ServBay-Webseiten und erstellen Sie einen neuen Projektordner (z. B.
servbay-koa-app
). Navigieren Sie dorthin und initialisieren Sie ein neues Node.js-Projekt:bashcd /Applications/ServBay/www mkdir servbay-koa-app cd servbay-koa-app npm init -y
1
2
3
4Der Befehl
npm init -y
erzeugt automatisch eine Standard-package.json
-Datei.Koa.js installieren
Installieren Sie Koa.js sowie – falls Sie TypeScript verwenden – die passenden Typrdefinitionen im Projektordner
servbay-koa-app
:bashnpm install koa # Für TypeScript können Sie die Typdefinitionen installieren # npm install @types/koa --save-dev
1
2
3Einstiegspunkt anlegen
Erstellen Sie im Projektordner
servbay-koa-app
die Dateiapp.js
und fügen Sie beispielhaften Koa.js-Code ein:javascriptconst Koa = require('koa'); const app = new Koa(); // Middleware: Protokolliert Request-Informationen app.use(async (ctx, next) => { const start = Date.now(); await next(); const ms = Date.now() - start; console.log(`${ctx.method} ${ctx.url} - ${ms}ms`); }); // Middleware: Beantwortet Root-Anfragen app.use(async ctx => { ctx.body = 'Hello from ServBay Koa.js App!'; }); // Definiere Port, bevorzugt Umgebungsvariable PORT const port = process.env.PORT || 3000; // HTTP-Server starten app.listen(port, () => { console.log(`Koa.js server running on http://localhost:${port}`); console.log(`Project path: ${__dirname}`); });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24Dieser Code erzeugt eine einfache Koa-Anwendung mit zwei Middlewares: Die erste protokolliert Anfragezeit und Pfad, die zweite beantwortet Root-Requests
/
mit "Hello from ServBay Koa.js App!". Standardmäßig lauscht die App auf dem Wert der UmgebungsvariablePORT
oder Port3000
.
Entwicklungsmodus starten
Während der Entwicklung führen Sie das Koa.js-Projekt lokal aus und greifen mittels ServBay Website-Funktion darauf zu.
Koa.js-Dev-Server starten
Öffnen Sie das Terminal, wechseln Sie in Ihr Projektverzeichnis
servbay-koa-app
und starten Sieapp.js
als lokalen Node.js-Prozess. Wählen Sie zur Vermeidung von Port-Konflikten und zur optimalen ServBay-Integration z. B. Port8585
:bashcd /Applications/ServBay/www/servbay-koa-app PORT=8585 node app.js
1
2Im Terminal erscheint eine Meldung wie
Koa.js server running on http://localhost:8585
, was den erfolgreichen Start des Servers auf Port8585
bestätigt. Lassen Sie dieses Fenster geöffnet, um den Server weiter laufen zu lassen.ServBay Website (Reverse Proxy) konfigurieren
Um die auf
localhost:8585
laufende Koa.js-App über eine eigene Domain zu erreichen, richten Sie in ServBay eine Website als Reverse Proxy ein.- Öffnen Sie ServBay.
- Wechseln Sie in den Website-Bereich.
- Klicken Sie unten links auf das
+
, um eine neue Website hinzuzufügen. - Füllen Sie die Website-Konfiguration:
- Name:
ServBay Koa.js Dev Site
- Domain:
servbay-koa-dev.servbay.demo
(Empfohlen für.servbay.demo
-Endung; ServBay generiert automatisch ein SSL-Zertifikat) - Typ: Wählen Sie
Reverse Proxy
- IP-Adresse:
127.0.0.1
(zeigt auf Ihren lokalen Node.js-Prozess) - Port:
8585
(entspricht dem Port Ihrer Koa.js-App) - Root-Verzeichnis: Für Reverse Proxy irrelevant; leer lassen oder Projektpfad
/Applications/ServBay/www/servbay-koa-app
eintragen.
- Name:
- Speichern Sie die Einstellungen.
- ServBay fordert eventuell auf, die Änderungen zu übernehmen – bestätigen Sie bitte.
Nach der Konfiguration aktualisiert ServBay automatisch Ihre lokale hosts-Datei und leitet Anfragen an
servbay-koa-dev.servbay.demo
via Caddy oder Nginx Reverse Proxy anlocalhost:8585
weiter. Da die Domain.servbay.demo
genutzt wird, stellt ServBay User CA automatisch ein SSL-Zertifikat aus – Sie können Ihr Projekt sicher via HTTPS öffnen.Details finden Sie in der ServBay-Dokumentation im Abschnitt Node.js-Entwicklungswebseite hinzufügen. (Bitte die englische Dokumentation wählen.)
Koa.js-Dev-Webseite öffnen
Im Browser öffnen Sie
https://servbay-koa-dev.servbay.demo
.Bei korrekter Einrichtung sehen Sie die Seite "Hello from ServBay Koa.js App!". Änderungen an der Datei
app.js
und ein anschließender Neustart des Node.js-Prozesses werden nach Aktualisierung im Browser direkt sichtbar.
Produktions-Deployment (Simulation)
Im produktiven Umfeld sind oft andere Ports, Umgebungsvariablen oder Startmodi notwendig. Die Reverse Proxy-Konfiguration in ServBay funktioniert genauso für diese Szenarien.
Koa.js-Produktionsserver (simuliert) starten
Beenden Sie ggf. den laufenden Entwicklungsserver und starten Sie die Anwendung im Produktionsmodus, z. B. mit Port
8586
und gesetzterNODE_ENV
-Variable:bashcd /Applications/ServBay/www/servbay-koa-app PORT=8586 NODE_ENV=production node app.js
1
2Damit läuft eine zweite Koa.js-Instanz auf Port
8586
im Produktionsmodus.ServBay Website (Reverse Proxy, Produktion) konfigurieren
Richten Sie für das Produktiv-Szenario ebenfalls eine neue Website in ServBay ein:
- Öffnen Sie ServBay, wechseln Sie zum Website-Bereich.
- Klicken Sie auf das
+
, um eine neue Website zu erzeugen. - Konfigurieren Sie:
- Name:
ServBay Koa.js Prod Site
- Domain:
servbay-koa-prod.servbay.demo
(Alternativ: Eigene Domain verwenden und kostenloses Zertifikat via ACME/Let's Encrypt beziehen) - Typ:
Reverse Proxy
- IP-Adresse:
127.0.0.1
- Port:
8586
(für die Produktions-Koa.js-Instanz) - Root-Verzeichnis: leer oder Projektpfad eintragen.
- Name:
- Speichern und Änderungen übernehmen.
Die
.servbay.demo
-Domain nutzt weiterhin ServBay User CA. Beim Einsatz einer eigenen, öffentlichen Domain unterstützt ServBay automatische SSL/TLS-Zertifikatsverwaltung über das ACME-Protokoll (z. B. Let's Encrypt), was eine realitätsnahe Simulation des Live-Betriebs ermöglicht. Weitere Infos erhalten Sie unter SSL für Webseiten nutzen.Koa.js-Produktionswebseite (simuliert) öffnen
Im Browser:
https://servbay-koa-prod.servbay.demo
.Die Seite entspricht der Entwicklungsumgebung, doch die Requests werden jetzt von ServBay zum Node.js-Prozess auf Port
8586
weitergeleitet.
Datenbankverbindung
ServBay bringt viele gängige Datenbanken wie MongoDB, Redis, MariaDB (MySQL-kompatibel) und PostgreSQL direkt mit. Sie laufen lokal und sind im Standardfall ohne weitere Konfiguration über localhost
erreichbar.
Nachfolgend finden Sie Beispiel-Code zur Verbindung Ihres Koa.js-Projekts mit den ServBay-Datenbanken. Prüfen Sie vorher, ob die betreffenden Datenbanken über den Pakete (Packages)-Bereich in ServBay installiert und gestartet sind.
MongoDB verbinden
Installieren Sie den MongoDB-Node.js-Treiber (z. B.
mongoose
odermongodb
) im Projektordner:bashcd /Applications/ServBay/www/servbay-koa-app npm install mongoose # Oder npm install mongodb
1
2Fügen Sie im
app.js
oder einem anderen Modul die Verbindung hinzu:javascript// Verbindung zu MongoDB mit Mongoose const mongoose = require('mongoose'); // ServBay MongoDB: Standardmäßig keine Authentifizierung, Datenbankname frei wählbar mongoose.connect('mongodb://localhost:27017/servbay-koa-app', { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log('Connected to MongoDB')) .catch(err => console.error('MongoDB connection error:', err)); // Hinweis: Die Verbindung sollte idealerweise im Application-Startup erfolgen // und erst bei erfolgreicher Verbindung werden weitere Dienste gestartet.
1
2
3
4
5
6
7
8
9
10
11
12
13Der standardmäßig installierte ServBay-MongoDB-Server lauscht auf Port
27017
. Sie können Datenbanken direkt benennen; existieren sie nicht, werden sie automatisch angelegt.Redis verbinden
Installieren Sie das Redis-Node.js-Paket:
bashcd /Applications/ServBay/www/servbay-koa-app npm install redis
1
2Damit verbinden Sie den lokalen Redis-Server:
javascript// Redis-Client zur Verbindung mit Redis verwenden const redis = require('redis'); // Standard-Verbindung zu localhost:6379 (ServBay Redis-Port) const client = redis.createClient({ url: 'redis://localhost:6379' }); client.on('connect', () => { console.log('Connected to Redis'); }); client.on('error', (err) => { console.error('Redis connection error:', err); }); // Verbindung herstellen client.connect(); // Hinweis: Im Produktivcode warten Sie auf den Connect, // z. B. mit async/await in Verbindung mit client.connect()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Redis hört standardgemäß auf Port
6379
, ohne Passwort im Standardfall.MariaDB (oder MySQL) verbinden
MariaDB ist der mySQL-Fork und API-kompatibel. ServBay liefert MariaDB standardmäßig aus; Sie können aber auch
mysql2
wegen besserer Kompatibilität nutzen.Installieren Sie einen MariaDB-Treiber:
bashcd /Applications/ServBay/www/servbay-koa-app npm install mariadb # Oder npm install mysql2 (empfohlen)
1
2Mit
mariadb
verbinden:javascript// MariaDB-Client zur Verbindung einsetzen const mariadb = require('mariadb'); // ServBay-Standard-Passwort für root: 'password' const pool = mariadb.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'servbay_koa_app', // Datenbank bitte anlegen oder Namen anpassen connectionLimit: 5 }); pool.getConnection() .then(conn => { console.log("Connected to MariaDB"); conn.release(); // Verbindung zurück in den Pool geben }) .catch(err => { console.error("MariaDB connection error:", err); }); // Hinweis: Die Pool-Verbindungen sind asynchron.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22Alternative mit
mysql2
(empfohlen):javascript// Mit mysql2-Client zu MariaDB/MySQL verbinden const mysql = require('mysql2/promise'); // Promise-Variante verwenden // Standard-Passwort: 'password' const pool = mysql.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'servbay_koa_app', // Bitte anlegen waitForConnections: true, connectionLimit: 10, queueLimit: 0 }); pool.getConnection() .then(conn => { console.log("Connected to MariaDB/MySQL using mysql2"); conn.release(); // Verbindung zurück in den Pool geben }) .catch(err => { console.error("MariaDB/MySQL connection error:", err); }); // Infos zu Passwort: In der ServBay-GUI in den Datenbankeinstellungen prüfbar und änderbar. // Tipp: Verwenden Sie in echten Projekten besser Umgebungsvariablen statt Klartextpasswörtern.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25MariaDB lauscht auf Port
3306
. Das Root-Passwort finden und ändern Sie im ServBay-Datenbankbereich. Die Datenbankservbay_koa_app
sollte vorab von Ihnen angelegt werden – z. B. mit TablePlus, DBeaver oder ServBay selbst.PostgreSQL verbinden
Installieren Sie den Node.js-PostgreSQL-Treiber:
bashcd /Applications/ServBay/www/servbay-koa-app npm install pg
1
2Verbindungsbeispiel:
javascript// Mit pg-Client zu PostgreSQL verbinden const { Pool } = require('pg'); // ServBay-PostgreSQL-User 'user', Passwort 'password' const pool = new Pool({ user: 'user', host: 'localhost', database: 'servbay_koa_app', // Datenbank vorher anlegen password: 'password', port: 5432, }); pool.connect((err, client, done) => { if (err) { console.error('PostgreSQL connection error:', err); return; } console.log('Connected to PostgreSQL'); client.release(); }); // Passwort-Info: In der ServBay-GUI einsehbar und änderbar. // In echten Projekten besser keine Klartextpasswörter verwenden.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23PostgreSQL lauscht auf Port
5432
. Die Zugangsdaten finden und verwalten Sie im ServBay-Datenbankbereich, die Datenbankservbay_koa_app
sollte zuvor angelegt werden.
Datenbanken in ServBay verwalten
Neben der Programmierung können Sie die ServBay-Datenbanken auch mit grafischen Clients administrieren. Die lokalen Datenbanken hören auf 127.0.0.1
/localhost
– mit ServBay-GUI, Port und Zugangsdaten verbinden.
- Passwörter einsehen/ändern: Im ServBay-Paketmanager finden Sie beim betreffenden Datenbankpaket ein Zahnrad-Symbol zur Konfiguration von Benutzer und Passwort.
- Datenbanken/Nutzer anlegen: Mit Tools wie TablePlus, DBeaver, pgAdmin, MongoDB Compass verbinden Sie sich zum lokalen ServBay-Datenbankdienst und erstellen Datenbanken, Tabellen etc. via GUI oder SQL.
Hinweise
- Port-Konflikte: Wählen Sie für Ihre Koa.js-App (z. B. 8585, 8586) nicht belegte Ports.
- ServBay-Status: Vergewissern Sie sich, dass ServBay sowie die benötigten Node.js- und Datenbankpakete laufen.
- Hosts-Datei: ServBay verwaltet diese automatisch; bei Problemen prüfen Sie
/etc/hosts
auf Einträge. - Firewall: Sorgen Sie für freigegebene Ports in Ihrer macOS- oder externen Firewall für ServBay/Node.js.
- Logs: Bei Problemen helfen die ServBay-Logs (im ServBay-GUI) und die Terminal-Ausgaben Ihres Node.js-Prozesses für die Diagnose.
FAQ (Häufige Fragen)
Frage: Warum sollte ich für mein Koa.js-Projekt den Reverse Proxy von ServBay nutzen?
Antwort: Die Nutzung des Reverse Proxy (Website-Funktion von ServBay) bietet mehrere Vorteile:
- Produktionsnahes Umfeld: Entwicklung mit eigenen Domains (wie
.servbay.demo
) statt nurlocalhost:PORT
simuliert reale Zugriffsmuster. - SSL-Unterstützung: ServBay konfiguriert automatisch SSL-Zertifikate per User CA oder Let's Encrypt, sodass Sie bereits im Development HTTPS nutzen und testen können.
- Zentrale Verwaltung: Alle lokalen Entwicklungswebseiten sind komfortabel in ServBay verwaltbar.
- Port-Versteckung: Besucher und Browser greifen über die Standard-Ports 80/443 zu; intern wird an die höher gelegenen Ports Ihres Node.js-Prozesses weitergeleitet.
- Produktionsnahes Umfeld: Entwicklung mit eigenen Domains (wie
Frage: Kann ich mein Koa.js-Projekt auch ohne Reverse Proxy direkt via
localhost:PORT
öffnen?Antwort: Ja, das geht. Läuft Ihre Koa.js-App auf einem bestimmten Port (z. B. 3000 oder einem anderen), können Sie direkt im Browser über
http://localhost:PORT
entwickeln und testen. Allerdings profitieren Sie dabei nicht von Features wie eigene Domains, automatisches SSL, zentrale Logverwaltung etc., wie sie die ServBay-Website-Funktion bietet. Wer möglichst realitätsnahe Entwicklungsbedingungen bevorzugt, sollte auf den Reverse Proxy zurückgreifen.Frage: Wie lautet das Standarddatenbankpasswort in ServBay und wie ändere ich es?
Antwort: Das ServBay-Standardpasswort finden Sie im Datenbankbereich der ServBay-App, meist per Zahnrad-Icon neben der Datenbank. Dort werden Benutzername und Passwort angezeigt und sind änderbar. Aus Sicherheitsgründen sollten Sie das Standardpasswort ändern.
Fazit
Mit dieser Anleitung haben Sie gelernt, wie Sie Koa.js-Projekte unter macOS mit ServBay komfortabel aufsetzen. Sie erstellen eine Basis-Koa.js-App und richten per ServBay-Websitefunktion einen Reverse Proxy ein, um das lokale Development und simulierte Produktion über eigene Domains und HTTPS zu erreichen. Zusätzlich wissen Sie, wie Sie die integrierten Datenbanken von ServBay an Ihr Projekt anbinden.
ServBay bietet Node.js-Entwicklern eine integrierte, einfach verwaltbare lokale Entwicklungsumgebung, mit der Sie sich auf den Code konzentrieren können, statt auf komplexe Konfiguration. Nutzen Sie die ServBay-Features, um Ihre Produktivität und Effizienz spürbar zu steigern.