Qu'est-ce que Node ?
Avant de nous lancer dans l'écriture du code, qu'est-ce que Node ? Qu'est-ce qu'Express ? Y-a-t-il une différence ?
Node est le runtime qui permet d'écrire toutes nos tâches côté serveur, en JavaScript, telles que la logique métier, la persistance des données et la sécurité. Node ajoute également des fonctionnalités que le JavaScript du navigateur standard ne possède pas, comme par exemple l'accès au système de fichiers local.
Express est, pour faire court, un framework reposant sur Node, qui facilite la création et la gestion des serveurs Node, comme vous le verrez à mesure que nous progresserons dans ce cours.
Initialisez votre projet
À partir de votre dossier backend
, exécutez la commande de terminal npm init
pour initialiser votre projet. Vous pouvez utiliser les options par défaut, ou les modifier si vous le souhaitez. Cependant, votre point d'entrée doit être server.js
. Vous le créerez bientôt.
Ce processus génère un fichier package.json
vierge, dans lequel seront enregistrés les détails de tous les packages npm
que nous utiliserons pour ce projet.
Créez un fichier server.js
à l'intérieur de votre dossier backend
. Il contiendra votre premier serveur Node.
Démarrez un serveur basique
Pour créer un serveur Node dans votre fichier server.js
, il vous faudra le code suivant :
const http = require('http');
const server = http.createServer((req, res) => {
res.end('Voilà la réponse du serveur !');
});
server.listen(process.env.PORT || 3000);
Ici, vous importez le package HTTP natif de Node et l'utilisez pour créer un serveur, en passant une fonction qui sera exécutée à chaque appel effectué vers ce serveur. Cette fonction reçoit les objets request
et response
en tant qu'arguments. Dans cet exemple, vous utilisez la méthode end
de la réponse pour renvoyer une réponse de type string
à l'appelant.
Dans la dernière ligne, vous configurez le serveur pour qu'il écoute :
soit la variable d'environnement du port grâce à
process.env.PORT
: si la plateforme de déploiement propose un port par défaut, c'est celui-ci qu'on écoutera ;soit le port 3000, ce qui nous servira dans le cas de notre plateforme de développement.
Démarrez le serveur en exécutant node server
à partir de la ligne de commande. Pour vérifier qu'il envoie la réponse correcte, utilisez une fenêtre de navigateur pour accéder à http://localhost:3000 (en supposant que vous ayez bien suivi les étapes ci-dessus).
Vous pouvez également utiliser un outil de test tel que Postman pour effectuer une requête GET (ou tout autre type de requête d'ailleurs, car notre serveur ne fait actuellement aucune distinction !) vers la même URL : http://localhost:3000 (à nouveau, en supposant que vous ayez bien suivi les étapes ci-dessus).
Installez nodemon
Pour simplifier le développement Node, vous souhaiterez peut-être installer nodemon
. Pour ce faire, exécutez la commande suivante :
npm install -g nodemon
Désormais, au lieu d'utiliser node server
pour démarrer votre serveur, vous pouvez utiliser nodemon server
. Il surveillera les modifications de vos fichiers et redémarrera le serveur lorsqu'il aura besoin d'être mis à jour. Cela vous garantit d'avoir toujours la dernière version de votre serveur dès que vous sauvegardez, sans devoir relancer manuellement le serveur ! Vous n'aurez qu'à relancer la requête vers votre serveur. Pratique, n'est-ce pas ?
Maintenant que vous savez démarrer un serveur de développement Node, dans le chapitre suivant, nous ajouterons Express au projet pour simplifier encore plus la création de notre API.
En résumé
Les projets Node sont initialisés avec la commande
npm init
.Un serveur Node basique est démarré avec la méthode
createServer
du packagehttp
.Nodemon est un package qui mettra à jour votre serveur démarré à chaque changement de fichier, vous facilitant le développement Node.
Prêt à créer une application Express ? C'est ce que nous allons faire dans le chapitre suivant !