D'autres, tels que les modules tiers ou les modules locaux installés via NPM, chaque module exposera une API publique. Pour que les développeurs puissent l'importer. Comme
Une fois cette phrase exécutée, Node chargera les modules intégrés ou installés via NPM. La fonction require renvoie un objet. L'API exposée par l'objet peut être une fonction, un objet ou un attribut tel qu'une fonction, un tableau ou même tout type d'objet JS.
Voici le mécanisme de chargement et de mise en cache du module nœud
1) Chargez le module intégré (A Core Module)
2) Chargez le module de fichiers (A File Module)
3) Chargez le module de répertoire de fichiers (A Folder Module)
4) Charger les modules dans node_modules
5) Mettre automatiquement en cache les modules chargés
1. Charger les modules intégrés
Les modules intégrés de Node sont compilés sous forme binaire et sont référencés directement par leur nom au lieu du chemin du fichier. Lorsqu'un module tiers porte le même nom qu'un module intégré, le module intégré écrasera le module tiers portant le même nom. Par conséquent, lors de la dénomination, vous devez faire attention à ne pas avoir le même nom que celui du module intégré. Comme obtenir un module http
Le http renvoyé est le module intégré de Node qui implémente la fonction HTTP.
2. Charger le module de fichiers
Chemin absolu
Vous pouvez directement exiger un répertoire, en supposant qu'il existe un répertoire nommé dossier, tel que
À ce stade, Node recherchera dans tout le répertoire du dossier. Node supposera que le dossier est un package et essaiera de trouver le fichier de définition du package package.json. Si le répertoire du dossier ne contient pas le fichier package.json, Node supposera que le fichier principal par défaut est index.js et index.js sera chargé. Si index.js n'existe pas non plus, le chargement échouera.
Supposons que la structure des répertoires soit la suivante
package.json est défini comme suit
À ce stade, require('./folder') renverra le module modA.js. Si package.json n'existe pas, le module index.js sera renvoyé. Si index.js n’existe pas non plus, une exception de chargement se produira.
4. Chargez les modules dans node_modules
Si le nom du module n'est pas un chemin ou un module intégré, Node tentera de rechercher dans le dossier node_modules du répertoire courant. Si les node_modules dans le répertoire actuel ne sont pas trouvés, Node recherchera à partir des node_modules dans le répertoire parent et récurera jusqu'au répertoire racine.
Ne vous inquiétez pas, la commande npm nous permet d'installer, désinstaller et mettre à jour facilement le répertoire node_modules.
5. Mise en cache automatique des modules chargés
Le module chargé Node sera mis en cache sans avoir à chercher à nouveau à chaque fois. Voici un exemple
modA.js
init.js
Exécution en ligne de commande :
noeud init.js
Entrez comme suit
Vous pouvez voir que bien que require soit exécuté deux fois, modA.js n'est toujours exécuté qu'une seule fois. mod1 et mod2 sont identiques, c'est-à-dire que les deux références pointent vers le même objet module.