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
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');
require('my_module');
Utilisez l'identifiant du module entrant pour trouver le fichier de module correspondant via les règles de chargement require('./calcuator');
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!