Maison >interface Web >js tutoriel >Apprenez Node.js de moi (4) --- Méthode de chargement de module et mécanisme des compétences Node.js_javascript

Apprenez Node.js de moi (4) --- Méthode de chargement de module et mécanisme des compétences Node.js_javascript

WBOY
WBOYoriginal
2016-05-16 16:46:30927parcourir

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

Copier le code Le code est le suivant :

var mod = require('module_name')

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

Copier le code Le code est le suivant :

var http = require('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

Copier le code Le code est le suivant :

var myMod = require('/home/ base/my_mod ')


ou chemin relatif

Copier le code Le code est le suivant :

var myMod = require('./my_mod ')


Notez que l'extension ".js" est ignorée ici, ce qui suit est équivalent

Copier le code Le code est le suivant :

var myMod = require('./my_mod ')
var myMod = require('./my_mod.js')

 
3. Chargez le module de répertoire de fichiers

Vous pouvez directement exiger un répertoire, en supposant qu'il existe un répertoire nommé dossier, tel que

Copier le code Le code est le suivant :

var myMod = require('./folder ')

À 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

Apprenez Node.js de moi (4) --- Méthode de chargement de module et mécanisme des compétences Node.js_javascript

package.json est défini comme suit

Copier le code Le code est le suivant :

{
"nom": " pack",
"main": "modA.js"
}

À 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

Copier le code Le code est le suivant :

console.log('Le module modA commence à se charger...')
exports = function() {
console.log('Salut')
}
console.log ("Module modA chargé")

init.js

Copier le code Le code est le suivant :

var mod1 = require('./modA ')
var mod2 = require('./modA')
console.log(mod1 === mod2)

Exécution en ligne de commande :

noeud init.js

Entrez comme suit

Apprenez Node.js de moi (4) --- Méthode de chargement de module et mécanisme des compétences Node.js_javascript

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.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn