Maison  >  Article  >  interface Web  >  Explication détaillée de la fonction require simulée et exemples de mécanismes d'implémentation simples dans node.js

Explication détaillée de la fonction require simulée et exemples de mécanismes d'implémentation simples dans node.js

伊谢尔伦
伊谢尔伦original
2017-07-24 10:36:311701parcourir

Mécanisme de chargement de require dans nodejs

1. L'ordre de chargement des fichiers dans require

require Vous pouvez omettre l'extension lors du chargement des fichiers :

require('./module');

// Ceci Lorsque le fichier est exécuté en tant que fichier JS

                                                                                                                                                                                                                                 > // A ce moment, le module C++ précompilé du fichier est exécuté require('./module.js');

Fichier

                                                                                                               Recherchez le module à partir du dossier où se trouve le fichier actuel selon le chemin relatif ; Recherchez les modules à partir du répertoire racine du système require('./module.json');


=> ; Recherche avec chemin absolu, pas d'objection

require('./module.node'); Si la chaîne du paramètre ne se termine pas par ". /" ou "/" cela signifie qu'un module principal fourni par défaut (situé dans le répertoire d'installation système de Node ) est chargé :

   
=> Charger les fichiers dans le module principal Module système

require('./module/default.js'); Ou rechercher vers le haut à partir du répertoire actuel les fichiers dans le répertoire node_modules :



Si require passe dans le chemin d'un répertoire, il vérifiera automatiquement le fichier package.json du répertoire, puis chargera le fichier d'entrée spécifié dans le champ principal

require('../file.js'); Si les fichiers du package .json n'ont pas le champ principal, ou s'il n'y a pas de fichier package.json du tout, recherchez le fichier index.js dans le répertoire en tant que module :

= & gt; Le fichier index.js dans

require('/Users/iceStone/Documents/file.js'); 2. nécessite un cache

Lorsqu'un module est chargé pour la première fois temps, Node mettra en cache le module. Lors du prochain chargement du module, récupérez simplement l'attribut module.exports du module directement depuis le cache (le module ne sera plus exécuté)

Si vous devez exécuter le code dans le module plusieurs fois, vous pouvez généralement exposer le module Comportement (fonction), le cache du module peut être obtenu via require.cache et peut également être supprimé require('fs');

3. Tout le code s'exécute dans la portée du module et ne sera pas polluer le périmètre mondial.


Simuler la fonction require

require('my_module');

Le chargement de require est relativement compliqué Effectuons une simulation simple du chargement de


require. Le mécanisme d'implémentation simple est le suivant :


Utilisez l'identifiant du module entrant pour trouver le fichier de module correspondant via les règles de chargement require('./calcuator');

Lisez le code dans ce fichier

Construisez un espace privé pour ce code en épissant


Exécutez le code


Récupérez module.exports et retournez


Deux modules utilisés dans le test de module ci-dessus

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!

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