Node.js est un outil de développement back-end populaire et son système de modules est un facteur important de son succès. Le système de modules de Node.js a un principe simple mais puissant, qui consiste à laisser chaque fichier et module se concentrer sur une chose, puis à les utiliser en cas de besoin.
Le système de modules de Node.js repose sur l'exportation et l'importation de modules. Chaque fichier .js est un module indépendant et peut exporter l'une de ses interfaces pour être utilisée par d'autres modules.
Lorsque nous utilisons require('module-name') pour importer un nom de module, Node.js utilise la stratégie suivante pour le trouver :
1. Rechercher des modules intégrés
Node.js charge divers modules intégrés. au démarrage, comme fs, http, etc. Lorsque vous essayez d'importer un module à l'aide de require("module-name"), le module est d'abord recherché parmi les modules intégrés.
Si un module intégré est trouvé et que le nom et le chemin du module correspondent, Node.js renverra ce module immédiatement. En conséquence, Node.js permet aux développeurs d'utiliser les modules intégrés rapidement et efficacement.
2. Rechercher des modules tiers
Si Node.js ne trouve pas de module intégré correspondant, la requête sera transmise au résolveur de module de Node.js pour le trouver.
Dans Node.js, chaque module vit dans son propre fichier. Les importations de chemin relatif signifient qu'un module peut avoir besoin de référencer d'autres fichiers dans le système de fichiers.
Lorsque l'analyseur rencontre une importation de chemin relatif, il utilisera le chemin utilisé pour analyser le fichier importé et recherchera le fichier correspondant dans le système de fichiers.
Node.js recherchera d'abord le module dans le répertoire où se trouve le fichier actuel, puis parcourra le répertoire parent du fichier pour trouver le module. Ce processus se répétera jusqu'à ce que le module soit trouvé ou que Node.js atteigne la racine du système de fichiers.
Si l'analyseur trouve un fichier correspondant au chemin d'importation relatif, le module est renvoyé à require().
Si l'analyseur ne trouve pas le fichier ou trouve un fichier invalide, require() générera une erreur.
3. Rechercher des modules Node.js
Si Node.js recherche actuellement un fichier, mais qu'un autre module essaie de lui demander de trouver un module Node.js, Node.js interrompra le processus de recherche de ce fichier et démarrera. à la recherche du module Node.js.
Tous les modules de base de Node.js sont écrits à l'aide de fichiers .js et situés dans des répertoires spécifiques de votre installation Node.js. Lorsque vous essayez d'importer un nom de module Node.js intégré dans require(), Node.js lira le module et le renverra, en ignorant tous les fichiers ou répertoires qui lui correspondent.
4. Rechercher des modules nommés globaux
Il existe des modules globaux dans Node.js, tels que Buffer et process. Ces modules ne peuvent pas être importés à l'aide de require() dans votre application car Node.js ne parcourt pas le système de fichiers pour les trouver. Ils sont souvent accessibles via des objets globaux tels que global.Buffer ou global.process.
Résumé
Le système de modules de Node.js a un certain degré de flexibilité et d'ordre, ce qui vous permet d'écrire uniquement des modules fermés sans craindre que votre code entre en conflit avec d'autres modules. Le système de modules de Node.js utilise des principes simples et clairs : chaque fichier et module peut se concentrer sur une chose et peut exporter une interface que d'autres modules pourront utiliser. Comprendre les mécanismes et l'ordre de recherche du système de modules Node.js peut vous aider à mieux comprendre le système de modules Node.js et son fonctionnement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!