Erstellen und Ausführen eines Koa.js-Projekts mit ServBay
ServBay ist eine speziell für macOS entwickelte lokale Webentwicklungsumgebung, die zahlreiche Entwickler-Tools wie die Node.js-Laufzeit und verschiedene Datenbanken integriert. In diesem Leitfaden erfahren Sie, wie Sie mithilfe von ServBay Ihr Koa.js-Projekt schnell aufsetzen, ausführen und verwalten können.
Was ist Koa.js?
Koa.js ist ein modernes Webframework, entwickelt vom Team hinter Express.js und basiert auf Node.js. Es zeichnet sich durch Einfachheit, Ausdrucksstärke und eine umfangreiche Feature-Palette aus – ideal für den Aufbau von Webanwendungen und APIs. Koa.js nutzt die modernen Features von JavaScript, insbesondere die async/await
-Syntax, wodurch asynchrone Abläufe und Middleware-Programmierung deutlich vereinfacht werden. Der Code bleibt dadurch übersichtlich und leichter wartbar.
Hauptmerkmale von Koa.js
- Async/Await-basiert: Das Kern-Design baut auf
async/await
auf, wodurch die Steuerung asynchroner Abläufe intuitiv wird. - Leichtgewichtiger Core: Der Kern von Koa ist bewusst klein gehalten und enthält nur grundlegende Funktionen. Zusätzliche Funktionalitäten werden über modulare Middleware hinzugefügt.
- Leistungsfähige Middleware: Das Framework nutzt eine Kaskadenstruktur für Middleware, womit Anfragen flexibel und nachvollziehbar verarbeitet werden können.
- Konzentriert auf Web: Koa fokussiert auf Web- und API-Entwicklung, ohne unnötige zusätzliche Features.
Mit Koa.js können Entwickler besonders performant und wartungsfreundlich Webservices erstellen.
Koa.js-Entwicklungsumgebung mit ServBay einrichten
ServBay bietet Node.js-Entwicklern eine sofort einsatzbereite Umgebung inklusive Node.js-Laufzeit und wichtigen Datenbankservices. Zusammen mit der Webseiten-Funktion von ServBay ermöglicht die Plattform, lokale Projekte einfach über eigene Domains und SSL-Zertifikate abzurufen.
Voraussetzungen
Bitte stellen Sie vor Beginn folgendes sicher:
- ServBay installiert: Laden Sie die aktuelle Version von ServBay herunter und installieren Sie sie.
- Node.js-Paket installiert: Öffnen Sie die ServBay-App, gehen Sie zum Bereich Packages und stellen Sie sicher, dass Ihre gewünschte Node.js-Version installiert ist. Falls nicht, auswählen und installieren.
- Mit grundlegenden ServBay-Funktionen vertraut: Wissen Sie, wie Services in ServBay gestartet/gestoppt und Webseiten verwaltet werden.
Koa.js-Projekt anlegen
Wir speichern die Projektdateien im empfohlenen Web-Stammverzeichnis von ServBay: /Applications/ServBay/www
.
Projektverzeichnis initialisieren
Öffnen Sie das Terminal und wechseln Sie in das ServBay-Webverzeichnis. Erstellen Sie einen neuen Ordner (z. B.
servbay-koa-app
), wechseln Sie hinein 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
legt eine Standard-package.json
-Datei an.Koa.js installieren
Installieren Sie Koa.js sowie (bei TypeScript-Projekten) die Typdefinitionen im Projektordner:
bashnpm install koa # Wenn Sie TypeScript nutzen, auch Typdefinitionen installieren # npm install @types/koa --save-dev
1
2
3Einstiegspunkt anlegen
Erstellen Sie im Projektverzeichnis eine Datei namens
app.js
und fügen Sie folgenden Beispielcode hinzu:javascriptconst Koa = require('koa'); const app = new Koa(); // Middleware: Protokolliert Anfragen 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: Antwortet auf Anfragen an die Root-Route app.use(async ctx => { ctx.body = 'Hello from ServBay Koa.js App!'; }); // Port definieren, 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
24Dieses Beispiel erstellt eine grundlegende Koa-App mit zwei Middleware-Funktionen: eine für Anfrageprotokollierung, eine für die Antwort auf der
/
-Route mit "Hello from ServBay Koa.js App!". Die App lauscht auf dem in der UmgebungsvariablePORT
(oder standardmäßig auf3000
) angegebenen Port.
Entwicklungsmodus starten
Während der Entwicklung laufen Koa.js-Anwendungen typischerweise als lokaler Node.js-Prozess und werden über die Webseiten-Funktion von ServBay erreichbar gemacht.
Koa.js-Entwicklungsserver starten
Öffnen Sie das Terminal, navigieren Sie ins Projektverzeichnis und führen Sie die App mit Node.js aus. Zur Vermeidung von Portkonflikten können Sie einen bestimmten Port (z. B.
8585
) setzen:bashcd /Applications/ServBay/www/servbay-koa-app PORT=8585 node app.js
1
2Sie sehen dann eine Ausgabe wie
Koa.js server running on http://localhost:8585
, was bedeutet, dass der Server bereit ist. Lassen Sie das Terminal für den fortlaufenden Betrieb geöffnet.ServBay-Webseite (Reverse Proxy) konfigurieren
Um Ihr Koa.js-Projekt über eine eigene Domain erreichbar zu machen (
localhost:8585
), richten Sie einen Reverse Proxy in ServBay ein:- Öffnen Sie die ServBay-App.
- Wechseln Sie zum Bereich Webseiten.
- Klicken Sie unten links auf das
+
, um eine neue Website hinzuzufügen. - Füllen Sie die Konfiguration aus:
- Name:
ServBay Koa.js Dev Site
- Domain:
servbay-koa-dev.servbay.demo
(wir empfehlen.servbay.demo
, da ServBay automatisch ein SSL-Zertifikat generiert) - Typ:
Reverse Proxy
auswählen - IP-Adresse:
127.0.0.1
(lokaler Node.js-Prozess) - Port:
8585
(Port, auf dem Ihre Koa.js-App läuft) - Web-Stammverzeichnis: Für Reverse Proxy egal, kann leer bleiben oder der Projektpfad
/Applications/ServBay/www/servbay-koa-app
.
- Name:
- Speichern und Änderungen anwenden.
Nach dem Speichern aktualisiert ServBay Ihre lokale hosts-Datei, sodass Anfragen an
servbay-koa-dev.servbay.demo
nach127.0.0.1
und über einen internen Caddy- oder Nginx-Server an Port8585
weitergeleitet werden. Dank der.servbay.demo
-Domain wird ein SSL-Zertifikat von der ServBay User CA automatisch erstellt und als vertrauenswürdig eingetragen – Sie können Ihr Projekt somit sicher per HTTPS erreichen.Für detaillierte Schritte siehe die englische ServBay-Dokumentation.
Koa.js-Entwicklungsseite aufrufen
Öffnen Sie den Browser und besuchen Sie
https://servbay-koa-dev.servbay.demo
.Ist alles richtig konfiguriert, sehen Sie die Meldung "Hello from ServBay Koa.js App!" – Sie greifen nun über ServBays Webseitenfunktion auf Ihren lokalen Koa.js-Server zu. Nach Änderungen an der
app.js
und Neustart des Node.js-Prozesses laden Sie im Browser einfach neu.
Produktivumgebung simulieren
In simulierten Produktivumgebungen können Sie z. B. einen anderen Port, spezifische Umgebungsvariablen oder ein anderes Startverhalten verwenden. Die Reverse-Proxy-Funktion von ServBay bleibt identisch.
Koa.js-Produktion (Simulation) starten
Stoppen Sie die vorherige Entwicklungsinstanz im Terminal. Starten Sie die Anwendung dann mit z. B. Port
8586
und aktivierter Produktionsumgebung:bashcd /Applications/ServBay/www/servbay-koa-app PORT=8586 NODE_ENV=production node app.js
1
2Die App startet nun auf Port
8586
im (simulierten) Produktivmodus.ServBay-Webseite als Reverse Proxy einrichten (Produktion)
Legen Sie wie zuvor eine neue Seite in ServBay an:
- ServBay-App öffnen, zu Webseiten gehen.
- Über das
+
eine neue Webseite erstellen. - Ausfüllen:
- Name:
ServBay Koa.js Prod Site
- Domain:
servbay-koa-prod.servbay.demo
(mit eigener Domain auch möglich, dann kann ServBay SSL-Zertifikate via ACME/Let's Encrypt beantragen) - Typ:
Reverse Proxy
- IP-Adresse:
127.0.0.1
- Port:
8586
(hochgezogene Produktion) - Web-Stammverzeichnis: leer lassen oder Projektpfad angeben.
- Name:
- Speichern und Änderungen anwenden.
Auch mit
.servbay.demo
wird das User-CA-Zertifikat genutzt. Bei eigenen Domains unterstützt ServBay LetsEncrypt und ACME, um ein echtes SSL/TLS-Zertifikat anzufordern – perfekt für möglichst realistische Produktionssimulationen. Details finden Sie in der ServBay-Dokumentation.Produktionsseite aufrufen
Rufen Sie im Browser
https://servbay-koa-prod.servbay.demo
auf.Die Seite ist wie im Entwicklungsmodus erreichbar – diesmal aber leitet ServBay Anfragen an den Node.js-Prozess auf Port
8586
weiter.
Datenbankanbindung
ServBay liefert viele gebräuchliche Datenbanksysteme mit: MongoDB, Redis, MariaDB (MySQL-kompatibel) und PostgreSQL. Die Anbindung im Koa.js-Projekt ist besonders einfach, weil alle Dienste lokal laufen und standardmäßig über localhost
erreichbar sind.
Hier finden Sie Beispiel-Snippets für die Anbindung von ServBay-Datenbanken mit Node.js-Clients. Prüfen Sie bitte, ob das gewünschte Datenbankpaket in ServBay installiert und aktiv ist.
MongoDB anbinden
Installieren Sie einen MongoDB-Client (z. B.
mongoose
odermongodb
) in Ihrem Projektverzeichnis:bashcd /Applications/ServBay/www/servbay-koa-app npm install mongoose # oder npm install mongodb
1
2Binden Sie nun im Code an:
javascript// Mit Mongoose an MongoDB anbinden const mongoose = require('mongoose'); // Standardmäßig keine Authentifizierung nötig; Datenbankname beliebig 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: In der Praxis steht die Verbindungslogik meist im App-Startup. // Erst nach erfolgreichem Connect sollte das Lauschen auf Ports starten.
1
2
3
4
5
6
7
8
9
10
11
12
13Die von ServBay installierte MongoDB lauscht auf Port
27017
und benötigt standardmäßig kein Passwort.Redis anbinden
Installieren Sie einen Redis-Client:
bashcd /Applications/ServBay/www/servbay-koa-app npm install redis
1
2Die Verbindung:
javascript// Mit dem redis-Client an Redis anbinden const redis = require('redis'); // Client erstellen; Standard: localhost:6379 const client = redis.createClient({ url: 'redis://localhost:6379' // Standard-Port: 6379 }); client.on('connect', () => { console.log('Connected to Redis'); }); client.on('error', (err) => { console.error('Redis connection error:', err); }); // Mit Redis verbinden client.connect(); // Hinweis: Warten Sie ggf. via async/await auf eine erfolgreiche Verbindung, bevor Sie Redis-Operationen ausführen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20Die voreingestellte Redis-Instanz von ServBay nutzt Port
6379
und benötigt standardmäßig kein Passwort.MariaDB (MySQL) anbinden
MariaDB ist eine MySQL-kompatible Datenbank, welche ServBay als Paket bereitstellt.
Installieren Sie einen Node.js-Treiber:
bashcd /Applications/ServBay/www/servbay-koa-app npm install mariadb # oder npm install mysql2 (empfohlen)
1
2Beispiel mit
mariadb
:javascript// Anbindung mittels mariadb-Client const mariadb = require('mariadb'); // Standard-Passwort für root ist 'password' const pool = mariadb.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'servbay_koa_app', // Anpassen oder vorher erstellen connectionLimit: 5 }); pool.getConnection() .then(conn => { console.log("Connected to MariaDB"); conn.release(); // Verbindung zurückgeben }) .catch(err => { console.error("MariaDB connection error:", err); }); // Hinweis: Das Abrufen einer Verbindung aus dem Pool ist asynchron.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22Beispiel mit
mysql2
(empfohlen):javascript// Mit mysql2-Client an MariaDB/MySQL anbinden const mysql = require('mysql2/promise'); // Promise-Variante nutzen // Standard-Passwort für root ist 'password' const pool = mysql.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'servbay_koa_app', // Stellen Sie sicher, dass sie existiert waitForConnections: true, connectionLimit: 10, queueLimit: 0 }); pool.getConnection() .then(conn => { console.log("Connected to MariaDB/MySQL using mysql2"); conn.release(); // Verbindung zurückgeben }) .catch(err => { console.error("MariaDB/MySQL connection error:", err); }); // Hinweis: Sie finden die Default-Root-Passwörter in der ServBay-GUI und können sie dort auch anpassen. // Nutzen Sie für Produktionsprojekte Umgebungsvariablen statt fest codierter Passwörter.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25Die MariaDB von ServBay lauscht auf Port
3306
. Standardpasswort für denroot
-Benutzer steht in der ServBay-Adminoberfläche. Möglicherweise müssen Sie eine Datenbank (servbay_koa_app
) händisch anlegen (z.B. mit Tools wie TablePlus, DBeaver etc.).PostgreSQL anbinden
Installieren Sie den Node.js-Postgres-Treiber:
bashcd /Applications/ServBay/www/servbay-koa-app npm install pg
1
2Anbindung:
javascript// Mit pg-Client an PostgreSQL anbinden const { Pool } = require('pg'); // Default-Benutzer: 'user', Passwort: 'password' const pool = new Pool({ user: 'user', host: 'localhost', database: 'servbay_koa_app', // Datenbank vorher erstellen password: 'password', port: 5432, // Standardport ServBay }); pool.connect((err, client, done) => { if (err) { console.error('PostgreSQL connection error:', err); return; } console.log('Connected to PostgreSQL'); client.release(); // Verbindung zurückgeben }); // Hinweis: Default-Logins finden Sie in der ServBay-GUI, Änderung empfohlen. Keine Passwörter hartkodieren!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22PostgreSQL läuft auf Port
5432
. Benutzername und Passwort finden Sie ebenfalls in den ServBay-Einstellungen – ggf. müssen Sie die Datenbank vorher anlegen.
Datenbanken in ServBay verwalten
Neben der Anbindung im Code können Sie auch GUI-Tools verwenden, um die ServBay-Datenbanken zu administrieren. Sie laufen lokal auf 127.0.0.1
, Standardport und Default-Zugangsdaten stehen in der GUI.
- Default-Passwort ansehen/ändern: In der ServBay-App finden Sie bei jedem Datenbankpaket ein Zahnrad-Icon; über dieses können Sie das Standardpasswort (z. B. für root oder user) anzeigen oder anpassen.
- Datenbank/Benutzer erstellen: Mit Tools wie TablePlus, DBeaver, pgAdmin, MongoDB Compass etc. können Sie Verbindungen zu den lokalen Datenbanken herstellen und unkompliziert weitere Datenbanken, Nutzer und Tabellen anlegen – entweder per SQL oder via Interface.
Hinweise & Tipps
- Portkonflikte: Stellen Sie sicher, dass die für Koa.js gewählten Ports (z. B. 8585, 8586) nicht von anderen Diensten belegt sind.
- ServBay-Status: Prüfen Sie, dass sowohl die ServBay-App als auch die erforderlichen Node.js-Pakete und Datenbankdienste laufen.
- hosts-Datei: ServBay verwaltet Einträge automatisch. Bei Problemen mit Domainauflösung kontrollieren Sie, ob die Einträge in
/etc/hosts
korrekt sind. - Firewall: macOS- oder Drittanbieter-Firewalls dürfen ServBay oder Node.js-Ports nicht blockieren.
- Logs: Bei Fehlern helfen die ServBay-Logs (Tab in der GUI) oder die Terminal-Ausgaben des Node.js-Prozesses, um Ursachen zu finden.
Häufig gestellte Fragen (FAQ)
Warum sollte ich mein Koa.js-Projekt über den Reverse Proxy von ServBay erreichen?
Antwort: Ein Reverse Proxy via ServBay bietet viele Vorteile:
- Nahe an Realbedingungen: Eigene Domains (z. B.
.servbay.demo
) stattlocalhost:PORT
– so wie produktive Websites. - SSL-Unterstützung: ServBay konfiguriert lokale SSL-Zertifikate automatisch – Sie können gleich mit HTTPS testen.
- Zentrale Verwaltung: Alle lokalen Projekte übersichtlich in einer Oberfläche.
- Keine Portangabe nötig: Externe Erreichbarkeit (sofern gewollt) und Browser nutzen Standardport 80/443; intern wird an Node.js weitergeleitet.
- Nahe an Realbedingungen: Eigene Domains (z. B.
Kann ich Koa.js nicht einfach über
localhost:PORT
ohne Reverse Proxy testen?Antwort: Ja – theoretisch können Sie direkt per
http://localhost:PORT
entwickeln. Sie verzichten dabei aber auf Vorteile wie eigene Domains, automatisch gemanagte SSL-Zertifikate, zentrales Logging und eine realitätsnahe Umgebung. Für professionelle Entwicklung ist der Reverse Proxy in ServBay zu empfehlen.Wie lauten die Standarddatenbank-Passwörter und wo kann ich sie ändern?
Antwort: Sie finden die Standard-Passwörter aller Datenbanken in der Datenbanken-Sektion der ServBay-App. Klicken Sie beim jeweiligen Datenbanksymbol auf das Zahnrad, dann sehen oder ändern Sie die Passwörter. Zu Ihrer Sicherheit sollten Sie unbedingt eigene Passwörter setzen!
Zusammenfassung
Nach dieser Anleitung sollten Sie in der Lage sein, mit ServBay unter macOS eine komplette Koa.js-Entwicklungsumgebung einzurichten. Sie haben eine grundlegende Koa.js-Anwendung erstellt und via ServBay-Reverse-Proxy über eine eigene Domain und HTTPS erreicht – sowohl für Entwicklung als auch produktionsnahe Tests. Zusätzlich wissen Sie, wie man auf die wichtigsten lokal angebotenen Datenbanken zugreift.
ServBay bietet Node.js-Entwicklern eine umfassende, einfach zu verwaltende lokale Umgebung, mit der Sie sich auf das Wesentliche konzentrieren können: Ihren Code. Setzen Sie auf die vielseitigen Funktionen von ServBay, steigern Sie Ihre Effizienz und reduzieren Sie den Setup-Aufwand auf ein Minimum!