J’ai suivi récemment un formation HTML5 dans le cadre de mon travail. Lors de celle-ci, nous avons utilisé node.js pour la partie serveur.
Node.js est une plateforme basée sur le moteur JavaScript de Chrome qui permet de développer des applications en JavaScript. L’écosystème autour de nodejs est riche, outillé et très actif. Il est réputé pour ses performances (lié à son mode événementiel) et sa scalabilité.
Il existe notamment npm, node package manager, qui permet de gérer des modules et leurs dépendances. Il existe un très grand nombre de modules (+ de 48 000 actuellement) qui vous permettront de faire à peu tout ce que vous souhaitez (accès à une base de données, accès aux système de fichiers, …)
Dans notre cas, nous allons créer un serveur web avec node.js. Nous allons utiliser express, un module qui facilite la création d’un serveur web.
Installation d’Express
Nous allons donc installer Express via npm via la commande suivante en vous étant au préalable placer dans le dossier de votre future application (Pré-requis : NodeJs doit être installé.) :
npm install express
Cette commande va télécharger express et toutes ses dépendances dans le dossier node_modules (ce dossier contiendra tous les modules que vous installerez).
NB : Il est possible de définir un fichier package.json qui va définir votre projet dont ses références (guide interactif des propriétés du fichier package.json).
{ "name": "demo", "description":"Mon serveur express", "version": "0.0.1", "dependencies": { "express": "3.x" } }
Il suffit alors de lancer la commande pour que les dépendances du projet soit téléchargées :
npm install
Configuration du serveur
Node.js exécutant du JavaScript, notre serveur sera définit dans un fichier .js.
Voici l’exemple d’un fichier server.js qui permet de rapidement avoir un serveur http avec express.
//définition des dépendances et création d'un serveur express var express = require('express'), app = express(); //configuration d'express app.configure(function() { //__dirname est le chemin du dossier parent du fichier serveur //permet de renvoyer les fichiers à partir de la racine du fichier app.use(express.static(__dirname)); //permet d'afficher la liste des fichiers d'un dossier app.use(express.directory(__dirname)); //permet de gérer les erreurs app.use(express.errorHandler()); }); //on lance le serveur sur le port 8081 app.listen(8081); //On affiche dans la console que le serveur tourne console.log('Serveur lancé sur le port 8081');
il suffit de lancer dans la console de commande / terminal :
node server.js
Vous pouvez lancer votre navigateur à l’url http://localhost:8081 pour voir le résultat.
Voici par exemple l’affichage de la racine de mon serveur local pour le développement de mes exemples pour le blog.
Il affiche les dossiers et permet également de faire une recherche.
Le serveur ne renvoie que des fichiers statiques (html, css, js , images, …) mais il est tout à fait possible de renvoyer du contenu dynamique.
Références
Quelques liens pour bien débuter avec node.js
- The Beginner Node Book
- NodeJs pour les débutants (1)
- NodeJs pour les débutants (2)
- Introduction à Express avec notamment l’exemple de création d’un blog
- Nodetuts.com : des tutoriels en vidéo
- Une présentation de node js pendant ParisJs 2013
A noter, pour ceux qui font du .NET comme moi, que viens de sortir une extension pour Visual Studio pour Node JS qui a l’air très bien
Tweet
Je fréquente régulièrement ton blog, je suis à l’affût de nouveaux articles
Bonjour,
Ah un peu de promotion pour noteJS ^^.
Je l’ai découvert l’année passé, je vais regarder de plus près le module express (Ce n’est pas lui que j’ai utilisé).
Dommage qu’il n’y a pas encore beaucoup d’hébergeurs qui le proposent :'(