Cet article présente principalement une compréhension approfondie du module Node. Maintenant, je le partage avec vous et lui donne une référence.
Lors du développement d'applications Web complexes, il est généralement nécessaire de diviser chaque fonction, de l'encapsuler dans différents fichiers et de référencer le fichier si nécessaire, c'est-à-dire une gestion modulaire du code. Presque tous les langages de programmation ont leurs propres méthodes d'organisation des modules, telles que les packages en Java et les assemblys en C#, et Node adopte la spécification du module CommonJS.
Spécification du module
CommonJS vise à standardiser le JS qui s'exécute en dehors du navigateur et a résolu un grand nombre de problèmes JS (tels que la dénomination globale conflits). Dans l'implémentation Node de CommonJS, chaque module sera encapsulé dans un fichier JS distinct, c'est-à-dire qu'un fichier est un module et le chemin du fichier est le nom du module. Lors de l'écriture de chaque module, les trois variables prédéfinies suivantes sont disponibles :
require()
Cette fonction est utilisée dans le module actuel Pour charger et utiliser d'autres modules, passez dans un nom de module et renvoie un objet d'exportation de module. Le nom du module peut utiliser un chemin relatif (commençant par ./) ou un chemin absolu (commençant par / ou une lettre de lecteur telle que C :). De plus, l'extension .js dans le nom du module peut être omise. À ce stade, Node recherchera un dossier du même nom. S'il est introuvable, il recherchera un fichier js du même nom. Vous pouvez également utiliser cette fonction pour charger et utiliser un fichier JSON, mais l'extension .json ne peut pas être omise.
exports
Cet objet est l'objet d'exportation du module actuel et est utilisé pour exporter les méthodes et propriétés publiques du module. Il est par défaut un objet vide {}. Lorsque d'autres modules utilisent le module actuel via la fonction require(), ils obtiennent l'objet exports du module actuel. Une méthode publique est exportée dans le code suivant :
exports.hello = function() { console.log("Hello World!"); };
module
Cet objet est utilisé pour fournir des métadonnées et d'autres informations associées du module actuel, mais le le plus utile Remplace l'objet d'exportation du module actuel par son attribut exports. Par exemple, l'objet d'exportation du module est un objet normal par défaut. Vous pouvez utiliser la méthode suivante pour le transformer en fonction :
module.exports = function() { console.log("Hello World!"); };
Remarque : lorsque vous utilisez la méthode ci-dessus, toutes les modifications apportées à l'objet d'exportation. sera ignoré !
Initialisation du module
Le code JS dans un module n'est exécuté qu'une seule fois lors de la première utilisation du module, et est initialisé lors exécution L'objet exporté du module. Ultérieurement, l'objet d'exportation mis en cache est réutilisé.
Définir un module dans test.js
//定义私有变量 var name = ""; function setName(n) { name = n; } function logName() { console.log(name); } //导出公有方法 exports.setName = setName; exports.logName = logName;
Charger le module de test dans main
//加载test模块 var test1 = require("./test.js"), test2 = require("./test.js"); //使用test1 test1.setName("Neo"); //使用test2 test2.logName(); //Neo
Il est visible que peu importe le nombre de fois require() est appelé, pour le même Le module n'est chargé qu'une seule fois, et la même instance obtenue par référence plusieurs fois est en fait la même instance.
Module principal
Le module transmis à Node via les paramètres de ligne de commande pour démarrer le programme est appelé module principal. Le module principal est responsable. pour planifier et composer l'ensemble de l'application. D'autres modules du programme fonctionnent ensemble. Par exemple, lors du démarrage du programme via la ligne de commande suivante, main.js est le module principal :
$ node main.js
Module binaire
Node peut utiliser JS en plus. Lors de l'écriture de modules, il est également pris en charge d'utiliser C/C++ pour écrire des modules binaires. Les modules binaires compilés peuvent être utilisés de la même manière que les modules JS, sauf que l'extension de fichier est .node. Bien que les modules binaires puissent utiliser toutes les fonctions fournies par le système d'exploitation, ils sont difficiles à utiliser sur toutes les plateformes.
Ce qui précède est ce que j'ai compilé pour vous. J'espère que cela vous sera utile à l'avenir.
Articles connexes :
Résumé JS des méthodes pour convertir des objets non-tableaux en tableaux
js+canvas implémente le code de vérification du puzzle coulissant function
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!