Maison > Article > interface Web > Explication détaillée du mécanisme du module de nœud et du traitement asynchrone_node.js
1. Mécanisme des modules
Le but du mécanisme du module commonJS est de construire js pour former un écosystème dans les serveurs Web, les programmes de bureau, les navigateurs, etc. Node js est une implémentation de cette spécification, utilisant require pour introduire d'autres fichiers. De même, npm suit également la spécification de package définie par commonJS, formant ainsi un écosystème complet.
Définition et export du module
Par exemple, il existe le fichier suivant nommé circle.js
exports.getName = function(name) { return name }
Chargement des modules
var circle = require('/circle.js') console.log(circle.getName('WPY'))
Stratégie de chargement des modules
Les modules de nœuds peuvent être principalement divisés en deux catégories :
Modules natifs et modules personnalisés. Les modules dits natifs sont des modules définis par le nœud lui-même, tels que les modules HTTP et fs. Ces modules ont la vitesse de chargement la plus rapide.
Il existe également une catégorie de modules personnalisés, comprenant des modules de packages et des fichiers que nous définissons nous-mêmes. Qu'il s'agisse d'un module natif ou d'un module personnalisé, il sera mis en cache par nœud après avoir été chargé pour la première fois, il n'y aura donc pas de surcharge sur la deuxième requête.
Chargement du module natif :
Après avoir analysé le nom du fichier, la méthode require() recherchera d'abord dans le cache du module, puis recherchera dans le module natif du nœud
Charger à partir du fichier
module.path Pour chaque module de fichier chargé, il y aura un attribut paths lors de la création de l'objet module. Son chemin pointe vers le chemin du module importé.
Lors de la demande d'un module de chemin absolu, node_module ne sera pas parcouru pour la vitesse de chargement la plus rapide.
Programmation asynchrone
Fonction intermédiaire haute
Une fonction de haut niveau est une fonction qui prend une fonction comme paramètre ou comme valeur de retour.
function foo(X) { return function() { return x } }
La plus grande fonctionnalité apportée par NODE est l'E/S opportuniste non bloquante basée sur des événements.
Solutions de programmation asynchrone
1. Modèle de publication/abonnement d'événements
Le mode écouteur d'événements est largement utilisé dans la programmation asynchrone. Il s'agit d'une fonction de rappel temporisé, également connue sous le nom de mode publication/abonnement.
//订阅 emitter.on("event1", function(message){ console.log(message) }) //发布 emitter.emit("event1", "I am message")
2.Mode Promesse
L'objet promis a trois états, un état inachevé, un état terminé et un état échoué.
L'objet de promesse doit avoir une méthode then. La méthode then a les exigences suivantes
.
1. Acceptez les méthodes de rappel pour l'état d'achèvement et l'état d'erreur.
2. Seules les fonctions sont acceptées, les autres objets seront ignorés
3. Continuez à renvoyer l'objet de promesse pour implémenter les appels en chaîne