Node.js est un environnement de programmation backend open source et multiplateforme basé sur l'environnement d'exécution JavaScript. Le système de modules de Node.js est l'une de ses fonctionnalités principales, qui offre un moyen pratique et modulaire d'organiser et de réutiliser le code. Cet article présentera en détail le principe, l'utilisation et certains scénarios d'application courants du système de modules Node.js.
Le rôle du système de modules
La fonction principale du système de modules est d'encapsuler des codes avec des fonctions similaires dans un fichier séparé, de sorte que la structure du code soit plus claire et que les modules soient isolés les uns des autres. Cela peut également nous aider à améliorer la maintenabilité et la réutilisabilité du code, en réduisant les conflits de noms et les problèmes de variables globales.
Classement des modules
Dans Node.js, les modules peuvent être divisés en deux catégories : les modules de base et les modules de fichiers.
module de base
Le module core est un module officiel fourni par Node.js, qui peut être require
importé et utilisé directement via la méthode sans installation préalable. Par exemple, http
des modules pour la création de serveurs et la gestion des requêtes HTTP, fs
des modules pour les opérations sur les fichiers, etc.
module de fichiers
Le module de fichier est un module écrit par nous-mêmes et require
importé via la méthode. Un module de fichier peut être un fichier JavaScript ( .js
), un fichier JSON ( .json
) ou une extension C++ compilée ( .node
).
Exportation et importation de modules
Dans Node.js, le contenu d'un module peut module.exports
être exporté via l'objet, et d'autres modules peuvent require
importer le contenu via la méthode.
exporter
Nous pouvons affecter le contenu qui doit être exporté aux module.exports
propriétés ou aux méthodes de l'objet. Par exemple, nous pourrions math.js
définir ce qui suit dans un fichier appelé :
function add(a, b) {
return a + b;
}
function subtract(a, b) {
return a - b;
}
module.exports = {
add,
subtract
};
importer
Pour utiliser le contenu exporté dans un autre module, nous pouvons utiliser require
la méthode et l'affecter à une variable. Par exemple, dans un autre fichier :
const math = require('./math.js');
console.log(math.add(1, 2)); // 输出:3
console.log(math.subtract(5, 3)); // 输出:2
Règles de recherche de module
Lorsque vous utilisez require
la méthode pour importer un module, Node.js recherchera le fichier de module selon certaines règles de recherche.
module de base
Pour les modules de base, Node.js cherchera d'abord dans la liste des modules de base intégrés. Si le module principal correspondant est trouvé, le module est retourné directement.
module de fichiers
Pour les modules de fichiers, Node.js recherche dans l'ordre suivant :
- Si l'import est un chemin (commençant par
./
ou../
), il sera traité comme un chemin relatif, et le fichier du module se trouvera dans le répertoire où se trouve le fichier courant. - Si l'import est un chemin absolu (commençant par
/
), il sera traité comme un chemin absolu et le fichier de module sera recherché sous ce chemin. node_modules
Si l'importation n'est pas un chemin, Node.js recherchera des modules dans tous les niveaux de dossiers selon certaines règles .node_modules
La règle spécifique est de démarrer à partir du répertoire où se trouve le fichier en cours, de rechercher tour à tour les dossiers dans le répertoire supérieur et d'atteindre le répertoire racine. Dans chaquenode_modules
dossier, le fichier de module correspondant sera recherché en fonction du nom du module importé.
cache de modules
Node.js met en cache les modules chargés pour améliorer les performances. Cela signifie que si un module est chargé plusieurs fois, il ne sera exécuté qu'une seule fois et renverra le même objet.
Dépendances circulaires des modules
Lorsque deux modules dépendent l'un de l'autre, cela peut entraîner le problème de la dépendance circulaire. Par exemple, le module A dépend du module B et le module B dépend du module A. Afin d'éviter le problème des dépendances circulaires, Node.js chargera d'abord les dépendances de premier niveau du module lors de l'exécution, puis chargera les autres dépendances couche par couche.
Scénarios d'application du système de modules
Le système de modules de Node.js peut être appliqué dans de nombreux scénarios, voici quelques scénarios d'application courants :
Construire un serveur Web
L'utilisation du système de modules permet d'organiser et de réutiliser facilement le code et de créer un serveur Web bien structuré et extensible.
fonctionnement de la base de données
En encapsulant les opérations de base de données dans des modules, ces modules peuvent être réutilisés à différents endroits. Par exemple, utilisez la même logique de requête de base de données dans différents gestionnaires de routage.
opération de fichier
L'opération de fichier est un scénario d'application courant de Node.js. En modularisant, nous pouvons mieux organiser et réutiliser le code lié aux fichiers.
Développement d'une bibliothèque d'outils
En encapsulant les fonctions d'outil couramment utilisées dans des modules, ces fonctions peuvent être facilement réutilisées dans plusieurs projets et l'efficacité du développement peut être améliorée.
Résumer
Le système de modules de Node.js est l'une de ses fonctionnalités principales, qui fournit un moyen pratique, modulaire et réutilisable d'organiser le code. En important et en exportant des modules, nous pouvons encapsuler ensemble le code des fonctions associées pour améliorer la maintenabilité et la réutilisabilité du code. Dans le même temps, le système de modules de Node.js possède également des fonctionnalités telles que la recherche de règles, la mise en cache et la résolution des dépendances circulaires. La maîtrise des principes et de l'utilisation du système de modules Node.js est très importante pour développer des applications Node.js efficaces et maintenables.