D'autres tels que des modules tiers ou des modules locaux installés via NPM, chaque module exposera une API publique. Afin que les développeurs puissent importer. comme
La copie de code est la suivante:
var mod = require ('module_name')
Une fois cette phrase exécutée, le module ou le module intégré installé via NPM sera chargé à l'intérieur du nœud. La fonction requise renvoie un objet dont l'API exposée peut être une fonction, un objet ou un attribut tel qu'une fonction, un tableau ou même un objet JS de type arbitraire.
Voici les mécanismes de chargement et de mise en cache des modules de nœud
1) Chargez le module intégré (un module de base)
2) Chargez le module de fichier (un module de fichier)
3) Chargez le module de répertoire de fichiers (un module de dossier)
4) Chargez le module dans Node_Modules
5) Cachez automatiquement les modules chargés
1. Chargez le module intégré
Le module intégré de Node est compilé sous forme binaire, et le nom est directement utilisé à la place du chemin de fichier lorsqu'il est référencé. Lorsqu'un module tiers et un module intégré ont le même nom, le module intégré remplacera le module tiers avec le même nom. Par conséquent, lors de la dénomination, vous devez faire attention à ne pas avoir le même nom que le module intégré. Si vous obtenez un module HTTP
La copie de code est la suivante:
var http = requis ('http')
Le HTTP renvoyé est un module intégré qui implémente le nœud de fonction HTTP.
2. Chargez le module de fichier
Chemin absolu
La copie de code est la suivante:
var mymod = require ('/ home / base / my_mod')
ou chemin relatif
La copie de code est la suivante:
var mymod = requis ('./ my_mod')
Notez que l'extension ".js" est ignorée ici, et ce qui suit est pair
La copie de code est la suivante:
var mymod = requis ('./ my_mod')
var mymod = requis ('./ my_mod.js')
3. Chargez le module du répertoire de fichiers
Vous pouvez directement exiger un répertoire, en supposant qu'il existe un dossier nommé répertoire, tel que
La copie de code est la suivante:
var mymod = require ('./ dossier')
À ce stade, Node recherchera l'ensemble du répertoire du dossier, Node supposera que le dossier est un package et essaie de trouver le package de fichier de définition du package.json. Si le répertoire du dossier ne contient pas le fichier package.json, le nœud supposera que le fichier principal par défaut est index.js, ce qui signifie que index.js sera chargé. Si index.js n'existe pas, le chargement échouera.
Si la structure du répertoire est la suivante
package.json est défini comme suit
La copie de code est la suivante:
{
"nom": "pack",
"Main": "moda.js"
}
À l'heure actuelle, il faut ('./ le dossier') renvoie le module moda.js. Si package.json n'existe pas, le module index.js sera renvoyé. Si index.js n'existe pas, une exception de chargement se produira.
4. Chargez le module dans Node_Modules
Si le nom du module n'est pas un chemin d'accès ou un module intégré, Node essaiera de rechercher dans le dossier Node_Modules du répertoire actuel. Si les Node_Modules dans le répertoire actuel ne sont pas trouvés, le nœud recherchera à partir du Node_Modules dans le répertoire parent, puis continue de manière récursive jusqu'au répertoire racine.
Ne vous inquiétez pas, la commande NPM nous permet d'installer, de désinstaller et de mettre à jour le répertoire Node_Modules très facilement.
5. Cachez automatiquement les modules chargés
Le nœud du module chargé est mis en cache sans avoir à recouvrir à chaque fois. Voici un exemple
moda.js
La copie de code est la suivante:
console.log ('module moda commence à charger ...')
exports = function () {
console.log ('hi')
}
Console.log («Module moda a été chargé»)
init.js
La copie de code est la suivante:
var mod1 = require ('./ moda')
var mod2 = require ('./ moda')
console.log (mod1 === mod2)
Exécution de la ligne de commande:
nœud init.js
Entrez comme suit
On peut voir que bien que requis deux fois, Moda.js n'est toujours exécuté qu'une seule fois. Mod1 et Mod2 sont les mêmes, c'est-à-dire que les deux références pointent vers le même objet module.