Node est un environnement server open source , cross platform qui tourne avec moterur JS V8 de Chrome et execute du Javascript en dehors du navigateur

Event driven, non blocking

Comment fonctionne NodeJS :

Pour utiliser Node.js il faut premierement l'installer : https://nodejs.org/en/

Pour voir l'exécution du code dans la console

node nom-du-fichier.js

NodeJS rôle :

// require ('fs') recupere les methodes pour gérer les fichiers
const fs = require('fs');
fs.writeFileSync('hello.txt', 'Hello World from nodeJS')

SENDING RESPONSE :

const http = require('http');

const server = http.createServer((req, res) => {
    console.log(req.url, req.method, req.headers);
    // process.exit();
    res.setHeader('Content-Type', 'text/html');
    res.write('<html>');
    res.write('<head><title>My first page</title></head>')
    res.write('<body><h1>Hello from node.js server</h1></body>');
    res.write('</html>');
    res.end();
});

server.listen(3000);
// on ouvre le naviguateur localhost:3000 et on retrouve l'HTML ecrit plus haut

BUFFER :

Un buffer peut etre vu comme un arret de bus, il stope la data transmise par paquets pour lui appliquer des transformations. Puis la data reprend son chemin

const http = require('http');
const fs = require('fs');

const server = http.createServer((req, res) => {
    const url = req.url;
    const method = req.method;

    if (url === '/') {
        res.write('<html>');
        res.write('<head><title>Enter message</title></head>')
// rediriger vers /message avec POST notre message
        res.write('<body><form action="/message" method="POST"><input name="message" type="text"><button type="submit">Send</button></form></body>');
        res.write('</html>');
        return res.end();
    }

    if (url === '/message' && method === 'POST') {
        const body = [];
        req.on('data', (chunk) => {
            console.log(chunk);
// log : <Buffer 6d 65 73 73 61 67 65 3d 48 65 6c 6c 6f>
            body.push(chunk);
        })
        return req.on('end', () => {
            const parsedBody = Buffer.concat(body).toString();
            const message = parsedBody.split('=')[1];
            console.log(message)
// log : hello
            fs.writeFileSync('message.txt', message, (error) => {
                res.statusCode = 302;
                res.setHeader('Location', '/');
                return res.end();
            });
        });
    }

    res.setHeader('Content-Type', 'text/html');
        res.write('<html>');
        res.write('<head><title>My first page</title></head>')
        res.write(`<body><h1> Hello </h1></body>`);
        res.write('</html>');
        return res.end();
});

server.listen(3000);

BEHIND THE SCENES