Créer et exécuter un projet Koa.js avec ServBay
ServBay est un environnement de développement web local disponible sur macOS et Windows. Il intègre de nombreux outils et packages essentiels pour les développeurs, dont l’exécution Node.js et plusieurs bases de données importantes. Ce guide vous explique comment exploiter la puissance de ServBay pour créer, exécuter et gérer efficacement votre projet Koa.js.
Qu’est-ce que Koa.js ?
Koa.js, développé par l’équipe derrière Express.js, est un framework web nouvelle génération basé sur Node.js. Il est réputé pour sa simplicité, son expressivité et son ensemble de fonctionnalités avancées, ce qui en fait un choix idéal pour développer des applications web et des API. Koa.js exploite pleinement les possibilités du JavaScript moderne, notamment la syntaxe async/await
, simplifiant considérablement le développement des opérations asynchrones et des middlewares pour une structure de code plus lisible et maintenable.
Principales caractéristiques de Koa.js
- Basé sur async/await : Conçu autour de
async/await
pour un contrôle des flux asynchrones clair et intuitif. - Noyau léger : La bibliothèque principale de Koa est légère, se limitant aux fonctionnalités de base, et s’étend au moyen de middlewares modulaires.
- Middlewares puissants : Utilise une architecture de middlewares en cascade, permettant une gestion des requêtes flexible et transparente.
- Orienté web : Spécifiquement dédié au développement d’applications web et d’API, sans fournir de fonctionnalités superflues.
En optant pour Koa.js, les développeurs peuvent créer des services web performants et facilement maintenables.
Installer l’environnement de développement Koa.js avec ServBay
ServBay fournit aux développeurs Node.js un environnement prêt à l’emploi avec Node.js runtime et divers services de bases de données. Grâce à la fonctionnalité Sites web (Website) de ServBay, il est facile d’accéder à votre projet Koa.js local via un domaine personnalisé et des certificats SSL.
Prérequis
Avant de commencer, assurez-vous d’avoir effectué les étapes suivantes :
- Installer ServBay : Téléchargez et installez la dernière version de ServBay depuis le site officiel ServBay.
- Installer le package Node.js : Ouvrez ServBay, allez dans la gestion des Packages, et installez la version de Node.js dont vous avez besoin.
- Maîtriser la base de ServBay : Apprenez à démarrer/arrêter des services et à gérer les sites web dans ServBay.
Créer un projet Koa.js
Nous utiliserons le dossier racine recommandé pour les sites ServBay : /Applications/ServBay/www
.
Initialiser le dossier du projet
Ouvrez le Terminal, naviguez vers le dossier racine des sites ServBay, créez un nouveau dossier de projet (ex :
servbay-koa-app
), accédez-y puis initialisez un projet Node.js :bashcd /Applications/ServBay/www mkdir servbay-koa-app cd servbay-koa-app npm init -y
1
2
3
4La commande
npm init -y
génère rapidement un fichierpackage.json
par défaut.Installer Koa.js
Depuis le dossier racine du projet
servbay-koa-app
, installez Koa.js ainsi que ses types si vous utilisez TypeScript :bashnpm install koa # Si vous utilisez TypeScript, installez aussi les définitions de types # npm install @types/koa --save-dev
1
2
3Créer le fichier d’entrée de l’application
Dans le dossier
servbay-koa-app
, créez un fichierapp.js
et ajoutez le code d’une application Koa.js simple :javascriptconst Koa = require('koa'); const app = new Koa(); // Middleware : journaliser les requêtes 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 : gérer les requêtes sur la racine app.use(async ctx => { ctx.body = 'Hello from ServBay Koa.js App!'; }); // Définir le port, priorité à la variable d’environnement PORT const port = process.env.PORT || 3000; // Démarrer le serveur HTTP 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
24Ce script crée une application Koa basique avec deux middlewares : l’un pour enregistrer le temps et le cheminement des requêtes, l’autre répond à la route racine
/
avec "Hello from ServBay Koa.js App!". L’application écoute sur le port défini dans la variable d’environnementPORT
ou sur le port3000
par défaut.
Passer en mode développement
En phase de développement, on lance généralement un processus Node.js local pour le projet Koa.js, ensuite on accède à l’application à travers la fonction Site web de ServBay.
Démarrer le serveur Koa.js en mode développement
Ouvrez Terminal, accédez au dossier
servbay-koa-app
et lancezapp.js
avecnode
. Pour éviter les conflits de ports ou faciliter la configuration ServBay, spécifiez un port particulier, par exemple8585
:bashcd /Applications/ServBay/www/servbay-koa-app PORT=8585 node app.js
1
2Le Terminal devrait afficher un message du type
Koa.js server running on http://localhost:8585
, indiquant que le serveur fonctionne sur le port8585
. Gardez cette fenêtre ouverte pour laisser tourner le serveur.Configurer le proxy inverse du site web ServBay
Pour accéder à votre projet Koa.js via un domaine personnalisé, configurez un Site web en mode proxy inverse dans ServBay.
- Ouvrez l’application ServBay.
- Allez dans la section Site web (Website).
- Cliquez sur le bouton
+
en bas à gauche pour ajouter un nouveau site. - Remplissez la configuration du site :
- Nom :
ServBay Koa.js Dev Site
- Domaine :
servbay-koa-dev.servbay.demo
(utilisez l’extension.servbay.demo
recommandée par ServBay pour bénéficier automatiquement d’un certificat SSL) - Type : Sélectionnez
Proxy inverse (Reverse Proxy)
- Adresse IP :
127.0.0.1
(pour pointer sur le processus Node.js local) - Port :
8585
(le port du serveur Koa.js) - Racine du document : Peu importe pour le proxy inverse, laissez vide ou indiquez le chemin du projet
/Applications/ServBay/www/servbay-koa-app
.
- Nom :
- Cliquez sur Enregistrer.
- Si ServBay vous invite à appliquer les modifications, confirmez.
Une fois la configuration terminée, ServBay actualise le fichier hosts local pour pointer
servbay-koa-dev.servbay.demo
vers127.0.0.1
, et utilise le serveur intégré Caddy ou Nginx pour rediriger les requêtes du domaine vers le port8585
. Grâce à l’extension.servbay.demo
, un certificat SSL sera généré et validé automatiquement, vous permettant d’accéder au site en HTTPS en toute sécurité.Pour des instructions détaillées, consultez la partie Ajouter un site Node.js de développement dans la documentation ServBay (n'oubliez pas de choisir la version anglaise).
Accéder au site Koa.js en mode développement
Ouvrez un navigateur et visitez :
https://servbay-koa-dev.servbay.demo
.Si tout est bien configuré, la page affichera "Hello from ServBay Koa.js App!". Cela signifie que vous accédez à votre serveur Koa.js local via la fonction site web de ServBay. Après avoir modifié le fichier
app.js
et relancé Node.js, actualisez la page pour voir vos changements.
Déployer en mode production simulé
Pour simuler un environnement de production, il est courant d’utiliser des ports, des variables d’environnement ou des modes de lancement différents. La configuration de proxy inverse de ServBay reste applicable dans ce cas.
Lancer le serveur Koa.js en mode production (simulation)
Dans une nouvelle fenêtre Terminal, arrêtez le serveur en mode développement, puis lancez-le en mode production simulé sur un port distinct, par exemple
8586
, et avecNODE_ENV
:bashcd /Applications/ServBay/www/servbay-koa-app PORT=8586 NODE_ENV=production node app.js
1
2Cela démarre une instance Koa.js sur le port
8586
, en mode production simulé.Configurer le proxy inverse du site web ServBay (production simulée)
Ajoutez un nouveau site web dans ServBay pour la production simulée :
- Ouvrez ServBay, section Sites web.
- Cliquez sur le bouton
+
. - Configurez :
- Nom :
ServBay Koa.js Prod Site
- Domaine :
servbay-koa-prod.servbay.demo
(ou utilisez votre propre domaine et sollicitez gratuitement un certificat SSL via ACME/Let's Encrypt sur ServBay) - Type : Proxy inverse
- IP :
127.0.0.1
- Port :
8586
(port du serveur Koa.js en mode production simulé) - Racine du document : Laissez vide ou indiquez le chemin du projet.
- Nom :
- Enregistrez et appliquez les modifications.
Un domaine
.servbay.demo
utilisera toujours le certificat ServBay User CA. Si vous utilisez un domaine public, ServBay peut obtenir automatiquement un certificat SSL/TLS gratuit via ACME (Let's Encrypt). Pour en savoir plus, consultez Utiliser SSL pour sécuriser un site web dans la documentation ServBay.Accéder au site Koa.js en production simulée
Dans le navigateur, accédez à :
https://servbay-koa-prod.servbay.demo
.La page devrait être identique à celle de l’environnement de développement, mais cette fois la requête est proxyfiée vers le processus Node.js qui écoute sur le port
8586
.
Connexion à une base de données
ServBay intègre diverses bases de données populaires comme MongoDB, Redis, MariaDB (compatible MySQL) et PostgreSQL. Vous pouvez facilement y connecter votre projet Koa.js, car ces bases fonctionnent localement et sont accessibles via localhost
avec les configurations par défaut.
Ci-dessous se trouvent des exemples de connexion aux principales bases ServBay avec les clients Node.js. Assurez-vous d’avoir installé le package de la base voulue dans ServBay et que celle-ci est démarrée.
Connecter MongoDB
Installez le driver Node.js pour MongoDB (ex :
mongoose
oumongodb
) dans votre projet :bashcd /Applications/ServBay/www/servbay-koa-app npm install mongoose # ou npm install mongodb
1
2Ajoutez ensuite le code de connexion dans votre fichier
app.js
ou autre module :javascript// Connexion à MongoDB avec Mongoose const mongoose = require('mongoose'); // MongoDB ServBay : pas d’authentification par défaut, nom de DB libre 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)); // Note : Généralement, on place la connexion dans la logique d’initialisation // et on écoute le port seulement après succès.
1
2
3
4
5
6
7
8
9
10
11
12
13MongoDB installé avec ServBay écoute sur le port
27017
et ne requiert généralement ni nom d’utilisateur ni mot de passe. Spécifiez le nom de la base (elle sera créée si elle n’existe pas).Connecter Redis
Installez le client Node.js Redis :
bashcd /Applications/ServBay/www/servbay-koa-app npm install redis
1
2Connectez-vous au serveur Redis :
javascript// Connexion à Redis avec le client redis const redis = require('redis'); // Créer le client Redis, connexion sur localhost:6379 par défaut const client = redis.createClient({ url: 'redis://localhost:6379' // Port Redis par défaut sur ServBay }); client.on('connect', () => { console.log('Connected to Redis'); }); client.on('error', (err) => { console.error('Redis connection error:', err); }); // Connexion au serveur Redis client.connect(); // Note : Dans une vraie application, attendez la connexion avant d’opérer via Redis // par exemple avec async/await et client.connect()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Redis avec ServBay écoute sur le port
6379
sans exiger de mot de passe par défaut.Connecter MariaDB (ou MySQL)
MariaDB est une branche compatible de MySQL. ServBay propose un package MariaDB utilisable comme MySQL.
Installez le driver Node.js MariaDB :
bashcd /Applications/ServBay/www/servbay-koa-app npm install mariadb # ou npm install mysql2 (recommandé)
1
2Connexion avec
mariadb
:javascript// Connexion à MariaDB avec le client mariadb const mariadb = require('mariadb'); // Mot de passe root par défaut : 'password' sur ServBay const pool = mariadb.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'servbay_koa_app', // Vérifiez la création de la DB ou modifiez le nom connectionLimit: 5 }); pool.getConnection() .then(conn => { console.log("Connected to MariaDB"); conn.release(); // Relâcher la connexion dans le pool }) .catch(err => { console.error("MariaDB connection error:", err); }); // Note : La récupération depuis le pool est asynchrone
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22Connexion avec
mysql2
(recommandé) :javascript// Connexion à MariaDB/MySQL avec le client mysql2 const mysql = require('mysql2/promise'); // version Promise // Mot de passe root par défaut : 'password' sur ServBay const pool = mysql.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'servbay_koa_app', // Vérifiez la création de la DB waitForConnections: true, connectionLimit: 10, queueLimit: 0 }); pool.getConnection() .then(conn => { console.log("Connected to MariaDB/MySQL using mysql2"); conn.release(); }) .catch(err => { console.error("MariaDB/MySQL connection error:", err); }); // Note : Le mot de passe root par défaut est affiché ou modifiable dans les paramètres // de la base de données dans l’interface ServBay. // Évitez de les écrire en dur, préférez les variables d’environnement.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26MariaDB par défaut écoute sur le port
3306
. Le mot de passe root est consultable/modifiable dans ServBay. Pensez à créer explicitement la baseservbay_koa_app
dans ServBay ou avec un client de gestion de base (TablePlus, DBeaver…).Connecter PostgreSQL
Installez le driver Node.js PostgreSQL :
bashcd /Applications/ServBay/www/servbay-koa-app npm install pg
1
2Connexion au serveur PostgreSQL :
javascript// Connexion à PostgreSQL avec le client pg const { Pool } = require('pg'); // Utilisateur ServBay par défaut : 'user', mot de passe : 'password' const pool = new Pool({ user: 'user', host: 'localhost', database: 'servbay_koa_app', // Assurez-vous de la création de la DB password: 'password', port: 5432, // Port par défaut sur ServBay }); pool.connect((err, client, done) => { if (err) { console.error('PostgreSQL connection error:', err); return; } console.log('Connected to PostgreSQL'); client.release(); }); // Note : Le mot de passe par défaut est visible/modifiable dans les paramètres // de la base dans ServBay GUI. Privilégiez les variables d’environnement.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23PostgreSQL par défaut écoute sur le port
5432
. Les identifiants par défaut sont indiqués dans ServBay et vous pouvez créer la baseservbay_koa_app
manuellement.
Gérer les bases de données ServBay
En plus de la connexion via le code, vous pouvez gérer les bases de données ServBay via des outils graphiques. Les bases sont accessibles sur 127.0.0.1
ou localhost
avec le port et les identifiants donnés dans le GUI ServBay.
- Afficher/modifier les mots de passe par défaut : Dans ServBay, accédez à la section dédiée du package base de données, cliquez sur l’icône de paramètres, puis visualisez ou modifiez le mot de passe (
root
pour MariaDB,user
pour PostgreSQL). - Créer une base/utilisateur : Utilisez des outils comme TablePlus, DBeaver, pgAdmin, MongoDB Compass… pour vous connecter à la base ServBay et créer bases, utilisateurs ou tables via commande SQL ou interface graphique.
Points d’attention
- Conflits de ports : Veillez à choisir des ports libres pour Koa.js (ex : 8585, 8586).
- État de ServBay : Vérifiez que ServBay, Node.js et les bases de données requises sont bien démarrés.
- Fichier hosts : ServBay gère le fichier
hosts
automatiquement, mais en cas de souci de résolution de domaines, vérifiez la présence des entrées adéquates dans/etc/hosts
. - Pare-feu : Assurez-vous que le pare-feu macOS ou tout firewall tiers n’empêche pas l’accès réseau de ServBay ou Node.js.
- Logs : En cas de problème, consultez les logs dans ServBay (onglet logs) et les sorties du processus Node.js en terminal pour diagnostiquer.
FAQ
Question : Pourquoi utiliser le proxy inverse ServBay pour accéder à mon projet Koa.js ?
Réponse : Le proxy inverse (fonction site web de ServBay) offre plusieurs avantages :
- Simulation de production : Utiliser un vrai domaine (ex :
.servbay.demo
ou votre domaine) au lieu delocalhost:PORT
reproduit mieux le mode de fonctionnement réel des sites web. - Support SSL : ServBay configure automatiquement des certificats SSL pour votre site local (User CA ou Let's Encrypt), ce qui permet de tester HTTPS durant le développement.
- Gestion centralisée : Gérez tous vos sites de développement depuis ServBay, facilement et efficacement.
- Masquage des ports : Les navigateurs accèdent au port classique 80/443, ServBay redirige alors la requête en interne vers le port Node.js.
- Simulation de production : Utiliser un vrai domaine (ex :
Question : Puis-je accéder à mon projet Koa.js sans proxy inverse, via
localhost:PORT
?Réponse : Oui, il est tout à fait possible d’accéder à votre projet en développement via
http://localhost:PORT
dans le navigateur. Cependant, vous ne bénéficierez pas des domaines personnalisés, SSL automatique ou gestion centralisée fournis par ServBay. Pour un environnement qui ressemble à la production, le proxy inverse reste la meilleure option.Question : Quel est le mot de passe par défaut des bases de données ServBay ? Comment le modifier ?
Réponse : Les mots de passe par défaut sont affichés dans l’interface ServBay, section Base de données. Cliquez sur l’icône paramètres du service (MariaDB, PostgreSQL…), où vous trouverez le login et le mot de passe par défaut et pourrez le modifier. Par sécurité, changez ces mots de passe dès que possible.
Conclusion
En suivant ce tutoriel, vous avez appris à mettre en place un environnement de développement Koa.js avec ServBay sur macOS. Vous avez créé une application Koa.js de base, configuré le proxy inverse pour y accéder via un domaine personnalisé et HTTPS, et simulé un environnement production. Vous savez également comment connecter votre projet aux principales bases de données intégrées de ServBay.
ServBay offre aux développeurs Node.js un environnement local intégré et facile à administrer, vous permettant de vous concentrer sur votre code, sans les tracas de la mise en place technique. Profitez des fonctionnalités avancées de ServBay pour booster votre productivité et la qualité de vos développements.