L'essentiel de Node.js

Lire des fichiers

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Vous pouvez lister et également lire directement le contenu d'un fichier qui se trouve sur la machine.
07:24

Transcription

Alors maintenant, on va parler de la lecture des fichiers et même un tout petit peu plus parce que je vais vous montrer quelques petites fonctionnalités sympa. Ça se passe toujours sur fs évidemment mais ça va pas être le readdir qu'on a là, ça va plutôt être le readfile. Alors, si vous allez regarder en revenant en arrière ici effectivement, on a vu ensemble le readdir, on a également le readFile. Alors, vous remarquez qu'attention à l'écriture, un tout petit peu différente ici, donc le Camel Case, donc il y a un F majuscule. Qu'est-ce qui va se passer si je demande un readFile ? Alors, bien sûr pour l'exemple de base, on va faire un Sync, comme ça on va avoir directement le fonctionnement et puis on va pouvoir avoir quelque chose. Alors, on a des fichiers ici, on pourrait carrément demander une lecture de server.js, comme ça, et logiquement, on devrait avoir une information dans la console. On va relancer notre serveur, on voit que le readpass, qu'il a une information, mais il se passe absolument rien. On a bien demandé une lecture, c'est quand même embêtant mais attention, vous êtes en Sync. Alors, quand on est en Sync, qu'est ce qu'on doit faire ? on doit le mettre à l'intérieur de quelque chose. On va appeler ça content, bien sûr, et on va ici faire un console.log du content. Alors vous allez voir c'est un peu particulier, mais vous inquiétez pas, c'est tout à fait normal ce qui va se passer, on va ici, hop, avoir de l'information et oh, bah zut alors, c'est un buffer. Donc on est un peu embêté, mais en réalité, c'est normal, tout simplement par ce qu'il n'est pas capable pour le moment de le décoder tel quel, il vous dit que c’est un buffer. Si vous voulez que votre fichier soit décodé, il va falloir obligatoirement lui définir ici le charset on appelle ça comme ça, donc le character set c'est-à-dire sur quel espace de caractère je dois travailler. Actuellement, si vous regardez bien notre éditeur en bas, on travaille de l'UTF-8 pour tout, donc il serait très intéressant de demander un décode en UTF-8 tout simplement, pour avoir le contenu du fichier. Et là, vous allez effectivement avoir le contenu du fichier qui s'affiche. Pensez bien à ça, vous êtes obligé de lui donner ici un flag, donc un espèce de paramètre en plus si vous souhaitez avoir l'information qui s'affiche. Sinon, bah vous aurez un joli petit buffer parce que lui, il va simplement prendre les octets qui se trouvent dedans, il vous fait un buffer du fichier et surtout il vous le décode pas. Donc il faut le décoder à la main si vous avez envie de travailler avec. Alors maintenant ce qui pourrait être intéressant ici, ce serait, puisqu’ici on itère les files, eh bien, de venir récupérer le contenu de chaque fichier et pourquoi pas, ce contenu de fichier, de l'afficher et de le récupérer et de faire un affichage directement de chaque fichier. C'est pas très compliqué à faire, en réalité, parce qu'il va suffire tout simplement, de faire une itération, et une itération ici, c'est possible avec forEach. ForEach, qu’est ce que ça va faire ? Bah, ça va prendre chaque fichier et puis vous allez pouvoir ici, récupérer le fichier. Récupérer le fichier, c'est quoi ? C'est le filename, qu’on soit bien d’accord. Donc ici, ce qu'on va avoir, c'est le nom du fichier à chaque fois. On va utiliser le format court également ici, et puis on va pouvoir à l'intérieur, demander l'affichage de chaque fichier. Ça va pas être très compliqué puisque, comme on a déjà ici le nom de fichier ça veut dire qu'on peut demander directement au fichier de venir nous donner des informations. Alors, il y a quelque chose de bien ici, c'est récupérer les stats sur le fichier. Alors, vous allez voir pourquoi ? Parce que de temps en temps, on va en avoir besoin. Comment on va l'utiliser, ça ? On va créer une variable stat et puis on va demander les statistiques du fichier, vous allez voir que c'est très très sympa et on va pouvoir récupérer pas mal d'information, tout ça, ça se trouve également sur fs. On va utiliser stat, et on peut utiliser, donc soit du Sync soit du asynchrone, pour le coup là, du sync ce sera largement suffisant, on va lui demander de nous le faire sur le fileName, on va lui passer ici le fileName, et puis on va lui demander ici un console. log des stats du fichier. Et vous allez voir que les stats du fichier, dans de nombreux cas, ça va pouvoir vous aider parce que vous allez récupérer de l'information. Alors attention, content ici n'existe plus, pensez à nettoyer un petit peu sinon vous allez avoir la même erreur que moi, et vous allez voir que là, ça vous donne pleins pleins pleins d'informations sur le fichier. Donc ça vous dit qu'est-ce que ce fichier, combien il y a de blocs, etc. etc. etc. donc pas mal, pas mal d'informations sur ce fichier-là et c'est vraiment super-intéressant parce qu'à partir de là on peut aussi travailler carrément sur le fichier. Il y a des possibilités, quand on a créé une stat, de savoir si ce fichier est un fichier de type file ou c'est un répertoire puisque bien sûr, vous êtes en train de le lister. Donc quand vous êtes en train de lister, bah avec le readdir vous récupérez en fait même les noms de répertoire si vous en avez. Alors le isfile, ça vous servira dans de nombreux cas pour savoir si ce fichier est un fichier. Et voyez qu'effectivement on a true, true et true, on voit que là, on a trois fichiers. Pensez-y parce que de temps en temps vous allez avoir besoin effectivement de récupérer de l'information. Alors maintenant, si j'ai envie de récupérer et d'afficher le contenu du fichier, je vais pas le faire à chaque fois de façon synchrone, non, non, je vais le faire directement de façon asynchrone, et pour ça, bah j'ai juste à utiliser fs.readfile, comme on l'a déjà fait. Je lui passe le nom de mon fichier, filename, et puis à partir de là, bah voilà, je peux directement câbler derrière ce qu’on a déjà vu, c'est-à-dire error et content, et je vais utiliser la callback pour venir faire de l’affichage. Pensez bien ici, même quand vous êtes en format court à venir mettre de l’information, comme ça, n’oubliez pas les ouvertures, fermetures et la flèche qui permet d’envoyer vers la callback. À l’intérieur, on va donc pouvoir utiliser si on en a envie, le console.log, sans aucun problème. Alors attention, cela dit, parce que vous allez voir on a oublié quelque chose, c’est pas très grave. Ici, c’est bien le content qui va nous intéresser et on va pouvoir l’afficher. Faites attention ici, on a un deuxième paramètre, rappelez-vous, c’est UTF-8, si vous l’oubliez, ça ne marchera pas. Donc là, on a premier paramètre, le fichier, le flag de l’encodage, et ensuite, la fonction callback. J'enregistre ça, on va le faire tourner, et effectivement, on voit bien qu’ici, à chaque fois, on a l'information. Alors, vu que c’est pas très très parlant, on pourrait, pourquoi pas, aussi venir ici afficher une petite string comme ça avec pourquoi pas des =, histoire de voir un peu ce qui se passe, Et puis, on peut utiliser ce formatage-là que vous avez déjà vu, qui permettrait, pourquoi pas, d’afficher le filename pour ne pas être embêté et pour avoir vraiment le nom du fichier qui apparait. Donc, comme ça vous aurez le filename à chaque fois, alors, vous ferez attention parce que là, pour le console.log , il n’a pas du tout envie de nous l’afficher. Alors c’est pas grave. Vous vous souvenez d’util ? Vous pourriez utiliser util, et sinon, vous pouvez juste venir travailler directement avec les +, ça marche aussi hein, on va simplement faire + comme ça, vous pouvez faire ça, c’est pas un problème non plus, d’utiliser cette partie là, comme ça, l’idée ici c’est juste d’avoir le nom de fichier qui s’affiche, comme ça au moins, vous n'êtes pas embêté, pensez à enregistrer aussi. Là, on va avoir effectivement server.js, c’est ça, ensuite, là on a une séparation, le QuestionHandler qu’on avait créé, et puis le spawned qu’on avait créé. Voilà un petit exemple rapide qui vous permet de lister. Bien sûr, vous imaginez bien qu'on a vu comment on va lire un répertoire, comment on va lire des fichiers, comment on va lister les fichiers. Maintenant, on va voir comment on crée, comment on supprime, comment on travaille.

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 !