NodeJs : Creer un serveur web avec Express

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.

Server web avec Express

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

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

2 réflexions au sujet de « NodeJs : Creer un serveur web avec Express »

  1. 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 :'(

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *