TP 2

Gestion des fichiers

L'objectif de ce TP est d'afficher le contenu d'un fichier situé dans un dossier resources. Nous afficherons son contenu dans la console Node.js.

Par la suite nous réutiliserons ce script pour afficher un document dans un navigateur.

Prérequis

Sources du TP : tp2-provided

Activer le sourceMapping

Le source mapping permet de mapper les lignes d'un fichier compilé avec les lignes de son fichier source.

Pour rendre cela possible nous avons installé le module source-map-support.

Dans le fichier app.ts ajouter en debut de fichier la ligne suivante :

require('source-map-support').install();

/// notre code TypeScript
console.error('TEST');

Exercice 1

Nous allons implémenter les différentes étapes nécessaires à la lecture d'un fichier en Node.js.

Vous pouvez l'écrire de la façon que vous voulez (Classe ES6/TypeScript ou en fonction).

L'important ici est de comprendre les notions suivantes :

Les methodes / fonctions à implémenter

Notre module FileUtils exposera la méthode read(). Elle nous permettra de lire le fichier, mais pour lire un fichier il faut d'abord implémenter les méthodes suivantes :

Pour vous aider la documentation : https://nodejs.org/dist/latest-v6.x/docs/api/fs.html

Exemple en classe

new FileUtils("document.txt")
   .read((content) => {
        console.log(content);
   });

Exemple en fonction

fileUtils.read("document.txt", function(content) {
    console.log(content);
});

Exercice 2

Nous allons implémenter une autre approche de programmation qui est courrante de voir en Node.js, la programmation événementielle.

Pour l'instant nous avons utilisé ce que l'on appel une callback pour récupérer le contenu du fichier.

Nous allons maintenant utiliser le module events et notre méthode read devra fonctionner ainsi :

Exemple en classe

new FileUtils("document.txt")
   .read((content) => {
        console.log(content);
   });
   
// ou
   
const file = new FileUtils("document2.txt");   
file.on('success', (content) => {
   console.log(content);
});

Exemple en fonction

fileUtils.read("document.txt", function(content) {
    console.log(content);
});

// ou

const file = fileUtils.read("document.txt");

file.on('success', (content) => {
   console.log(content);
});

Pour vous aider la documentation : https://nodejs.org/dist/latest-v6.x/docs/api/events.html

Suivant