L'essentiel de Node.js

Lister un répertoire

Testez gratuitement nos 1302 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Lister un répertoire et récupérer les informations des fichiers et des dossiers est possible avec Node.js. Voyez comment procéder.
06:08

Transcription

Il existe un module node.js que l’on va voir ensemble en profondeur. En profondeur, parce qu’il y a beaucoup de fonctionnalités, ce module s’appelle FileSystem, fs. C’est comme ça qu’on va l’utiliser, c'est-à-dire, vous le voyez ici et il nous permettra de travailler que les fichiers de l’ordinateur. Alors attention, les fichiers de l’ordinateur ça veut pas dire les fichiers de l’ordinateur de l'utilisateur, mais bien les fichiers du serveur, sur lequel est installé node.js. Donc concrètement pour nous, ça va être le dossier qui est là. Alors, on l'a déjà vu un petit peu parce qu’on avait utilisé ls pour lister. Bon bah maintenant, on va pouvoir carrément travailler, c'est-à-dire supprimer, créer des dossiers, faire pas mal de choses. Alors la première chose à voir évidement, ça va être la lecture. Alors vous allez voir que quasiment pour toutes les commandes, vous allez avoir une commande, par exemple appendFile et puis une commande appendFileSync. Alors ça, c’est un peu particulier quand on débarque dans le monde de node.js, on ne comprend pas bien pourquoi il y a deux commandes. Il faut savoir quelque chose, c'est que votre serveur node.js, il tourne sur la machine et il tourne de façon asynchrone, il est en capacité d’effectuer des commandes de façon asynchrone et aussi de façon synchrone. Pour vous expliquer un peu le fonctionnement, je vous propose de tester, on va faire une variable fs pour le FileSystem et on va faire un require de fs, là on dispose du module fs et on peut travailler avec. et puis on va lui demander de nous lister les fichiers, les files, en faisant simplement un « fs. », et on va utiliser readdirSync, ça va faire readdir, tout attaché et Sync, avec une majuscule à la fin, et puis on va lui demander de lister ce qui se trouve dans le dossier actuel. Et bien sûr, pour avoir le résultat, on va faire un petit console.log des files. Et puis surtout, ici on va faire un console.log, et puis on va lui demander ici, de nous mettre Read simplement. Alors si j’envoie ça, effectivement j’ai bien les commandes qui vont s’effectuer au fur et à mesure. On voit qu’effectivement ici il fait une lecture, il me renvoie les fichiers que j’ai actuellement, en plus c’est un tableau. Alors c’est génial parce que c’est un tableau, on peut donc itérer. On peut travailler avec, on peut faire pas mal de chose comme ça, sans aucun problème. Maintenant on va essayer la deuxième commande, on va faire le readdir, comme ça. Et puis on va lancer, et vous aller voir qu'il y a un petit problème, on va vous dire que vous ne pouvez pas appeler de l'asynchrone directement ici, en tant que sortie. Bah d’ailleurs si vous le regardez bien, ici, undefined sur file. Effectivement ce n’est pas possible de faire comme ça. On n'a pas le droit, pourquoi ? Parce que le readdir de base, qu’est ce qu’il fait en fait ? Il va lire de façon asynchrone, et alors là, j’attire votre attention, ça va se jouer de façon asynchroneur pas besoin de le mettre dans une variable, ça ne marchera pas, parce que quand la variable va être initialisée, vous allez pas pouvoir mettre le résultat de cette partie-là, puisqu’elle n’existe pas encore. Donc, tout ce que vous allez avoir avec node.js, qui sera asynchrone, et c’est même le principe de l'asynchrone, vous devrez déclarer une fonction derrière, alors, vous pouvez le faire en format court si vous voulez, on va prendre l’habitude de le faire, dans laquelle vous pourrez mettre deux arguments, les erreurs et puis généralement les fichiers, enfin, en tout cas le retour. Alors, il faudra regarder à chaque fois après un petit peu l'API, parce que ça va être différent en fonction de ce que vous allez utiliser. Mais ici pour le coup, il faut attendre que le résultat soit arrivé pour faire quelque chose sinon ça ne marchera pas. Donc ça veut dire que ça, on va devoir le déplacer et à le mettre à cet endroit-là. Et ça va être très drôle, ce qui va se passer maintenant, parce que comme c'est asynchrone, ça va se lancer et quand il aura terminé de lister, ça va nous afficher les fichiers, certes, mais ce qui est super marrant, c’est que le log read, il va passer avant parce qu’il sera plus rapide à s’exécuter que cette fonction asynchrone. Par contre il y a un grand intérêt, c’est que quand un processus prend beaucoup de temps, on peut donc faire d’autres choses pendant qu’il se termine et puis après reprendre la main sur ce processus sans aucun problème. On va relancer et on voit effectivement que notre console.log de la ligne sept, il est passé avant le console.log qu’on a à la ligne quatre. Tout simplement parce que le processus ici a mis un tout petit peu plus de temps à se jouer que le console.log qui, lui, a été exécuté par le serveur quasiment en live puisque là, il n'y a pas de processus, il y a rien, il n’y a pas d’asynchrone. Faut faire bien attention à ça, dans certains cas, vous aurez besoin de le faire en mode synchrone et donc vous utiliserez sync mais attention dans ce cas là, ça veut dire qu’il n'y a pas de callback il n’y a pas de fonction supplémentaire à passer, vous pouvez le mettre dans une variable tout de suite et dans d’autres cas vous allez vouloir que les choses se passent quand elles ont terminé de se passer et vous utiliserez bien évidement la fonction asynchrone. Alors, la plupart du temps avec node.js, on va faire de l’asynchrone, on ne va pas faire du synchrone. C’est à vous de voir après. C'est vrai que là, c'est vraiment en fonction des besoins que vous avez. Pensez surtout hein, toujours à mettre une gestion de l'erreur. Là, je l'ai pas mis parce que bon, c'est pour un petit exemple évidemment mais pensez à le faire, c'est important. Alors si vous regardez ici hein évidemment, à chaque fois, vous aurez directement les différentes signatures, ce que vous pouvez envoyer dedans et s'il y a une callback, bah, vous avez des informations. Donc si on cherche le readdir qu'on avait utilisé donc, on a ici cette fonction qui est toute simple, qu'on va retrouver ici, et la fonction synchrone qui se trouve en-dessous. On voit bien qu'effectivement, pour la fonction synchrone, on n'a pas de callback, et pour la fonction classique qui elle, est de base asynchrone, on a une callback d'appels. À chaque fois sur la documentation, vous pourrez aller regarder, vous aurez quelques petites informations et vous pourrez aller regarder effectivement à chaque fois, le nommage complet, il y a un bas de page à chaque coup qui vous explique comment vous allez pouvoir utiliser précisément les différentes fonctionnalités. Donc n'hésitez pas non plus à pousser un petit peu sur la documentation. Et partez du principe qu'à chaque fois, c'est un buffer qui est utilisé, donc on ouvre un buffer, on attend qu'il y ait des choses qui s'injectent à l'intérieur, et quand c'est terminé, il va déclencher le callback avec les différentes informations.

L'essentiel de Node.js

Exploitez les possibilités de Node.js et créez des applications côté serveur entièrement en JavaScript. Travaillez avec des requêtes web, gérez le protocole WebSocket, etc.

4h00 (44 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Node.js Node.js 7.0
Spécial abonnés
Date de parution :26 déc. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !