Breadcrumbs

node.js

1.express.js

express.js est un module pour node.js qui permet de créer plus rapidement des serveurs http.

il faut auparavant l'installer via npm:

1
npm install express

 

 

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
26
27
var express = require('express');
 
var app = express();
 
app.get('/', function(req, res) {
    res.setHeader('Content-Type', 'text/plain');
    res.end('Vous êtes à l\'accueil, que puis-je pour vous ?');
});
 
app.get('/sous-sol', function(req, res) {
    res.setHeader('Content-Type', 'text/plain');
    res.end('Vous êtes dans la cave à vins, ces bouteilles sont à moi !');
});
 
//permet de recuperer des pages dynamiques
app.get('/etage/:etagenum/chambre', function(req, res) {
    res.setHeader('Content-Type', 'text/plain');
    res.end('Vous êtes à la chambre de l\'étage n°' + req.params.etagenum);
});
 
//placé à la fin, catch les demandes restantes pour en faire des 404
app.use(function(req, res, next){
    res.setHeader('Content-Type', 'text/plain');
  	res.status(404).send('Page introuvable !');
});
 
app.listen(8080);

zz

Tutorial tiré de : http://fr.openclassrooms.com/informatique/cours/des-applications-ultra-rapides-avec-node-js

 

node.js est du javascript executé coté serveur.

1.Différence entre Apache et node.js

 Node.js est un environnement de développement JavaScript basé sur les évènements. l y a un seul thread mais aucune opération n'est bloquante. Ainsi, les opérations un peu longues (chargement d'un fichier, téléchargement d'une page web, démarrage d'un serveur web...) sont lancées en tâche de fond et une fonction de callback est appelée quand l'opération est terminée. contrairement à Apache qui est multithread.

1.1 Apache

 

 

1.2 node.js

 

 

2. Exemple simple serveur HTTP

2.1 Exemple 1

dans un fichier test.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//recuperation des packages necessaires
var http = require('http');
var url = require('url');
 
// déclaraction d'un serveur http
var server = http.createServer(function(req, res) {
        //permet de recuperer le nom de la page que l'utilisateur demande
        var page = url.parse(req.url).pathname;
        //affiche dans la console la page demandée
        console.log(page);
        //repond au client en text/plain.
        res.writeHead(200, {"Content-Type": "text/plain"});
        res.write('Bien le bonjour');
        res.end();
});
//lancement du serveur en écoute sur le port 8080
server.listen(8080);

Ensuite pour le lancer, depuis un terminal:
node test.js
Ensuite dans un navigateur http://localhost:8080

2.2 Exemple 2 récuperation de variable

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var http = require('http');
var url = require('url');
var querystring = require('querystring');
 
var server = http.createServer(function(req, res) {
  	//permet de parser les arguments
    var params = querystring.parse(url.parse(req.url).query);
    res.writeHead(200, {"Content-Type": "text/plain"});
    if ('prenom' in params && 'nom' in params) {
        res.write('Vous vous appelez ' + params['prenom'] + ' ' + params['nom']);
    }
    else {
        res.write('Vous devez bien avoir un prénom et un nom, non ?');
    }
    res.end();
});
server.listen(8080);

 

 

3.http server express.js

express.js est un module pour node.js qui permet de créer plus rapidement des serveurs http.

il faut auparavant l'installer via npm:

1
npm install express

 

 

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
26
27
var express = require('express');
 
var app = express();
 
app.get('/', function(req, res) {
    res.setHeader('Content-Type', 'text/plain');
    res.end('Vous êtes à l\'accueil, que puis-je pour vous ?');
});
 
app.get('/sous-sol', function(req, res) {
    res.setHeader('Content-Type', 'text/plain');
    res.end('Vous êtes dans la cave à vins, ces bouteilles sont à moi !');
});
 
//permet de recuperer des pages dynamiques
app.get('/etage/:etagenum/chambre', function(req, res) {
    res.setHeader('Content-Type', 'text/plain');
    res.end('Vous êtes à la chambre de l\'étage n°' + req.params.etagenum);
});
 
//placé à la fin, catch les demandes restantes pour en faire des 404
app.use(function(req, res, next){
    res.setHeader('Content-Type', 'text/plain');
  	res.status(404).send('Page introuvable !');
});
 
app.listen(8080);