1, analyse d'ouverture
Le module de système de fichiers est un simple wrapper pour un ensemble de méthodes d'opération d'E/S de fichiers POSIX standard. Le module peut être obtenu en appelant require("fs"). Toutes les méthodes du module de système de fichiers ont des versions asynchrones et synchrones.
(1), la méthode asynchrone dans le module du système de fichiers nécessite une fonction de rappel d'achèvement comme dernier paramètre formel entrant.
(2), la composition de la fonction de rappel est déterminée par la méthode asynchrone appelée. Habituellement, le premier paramètre formel de la fonction de rappel est les informations d'erreur renvoyées.
(3), si l'opération asynchrone est exécutée correctement et renvoyée, le paramètre d'erreur sera nul ou indéfini. Si vous utilisez la version synchrone de la méthode d'opération, si une erreur se produit, l'erreur sera renvoyée sous la forme d'une erreur normale générée.
(4), vous pouvez utiliser les instructions try et catch pour intercepter les erreurs et permettre au programme de continuer.
Regardons d'abord un exemple simple, la lecture d'un fichier ("bb.txt") :
(1), créez le fichier "bb.txt" avec le contenu suivant ("Bonjour à tous, je m'appelle Nobita ! (*^__^*) Hee hee...").
(2), l'opération de lecture du fichier est la suivante :
Résultat de l'exécution :
Ce qu'il faut noter ici : l'encodage doit être paramétré lors de la lecture des fichiers, sinon il apparaîtra sous forme de "buffer" par défaut.
En regardant l'effet de course sans réglages, la différence est toujours évidente. Comme suit :
Faisons une autre opération d'écriture, comme suit :
Liste de quelques exemples couramment utilisés :
2. La connexion entre Fs et Stream
"Stream" a des caractéristiques asynchrones. Nous pouvons diviser un fichier ou un élément de contenu en « morceaux » inconnus d'une taille spécifiée pour la lecture, et chaque fois qu'un « morceau » est lu, nous le publions. jusqu'à ce que le fichier soit lu. C'est comme "Transfer-Encoding: chunked" pris en charge par "http1.1". ("chunk" peut exister sous n'importe quelle forme, NodeJS existe sous forme de "Buffer" par défaut, ce qui est plus efficace). "Stream" dans NodeJS a une super fonctionnalité sur les systèmes Unix ("pipe" ------ pipe).Vous souvenez-vous encore du premier programme NodeJS dans « Article sur le module HTTP », « Hello, Big Bear ! » ? Apportons quelques modifications basées sur ce petit programme, comme suit :
(1), créez "bb.html"