Maison interface Web js tutoriel Analyse du déploiement de code basé sur les modules et les packages Node.js method_node.js

Analyse du déploiement de code basé sur les modules et les packages Node.js method_node.js

May 16, 2016 pm 03:15 PM
node.js 模块

Règles de résolution du chemin du module

Les programmeurs C expérimentés commencent par le fichier make lorsqu'ils écrivent un nouveau programme. De même, avant d'utiliser NodeJS pour écrire un programme, afin de bien démarrer, vous devez d'abord préparer la structure des répertoires et la méthode de déploiement du code, tout comme construire un échafaudage lors de la réparation d'une maison. Ce chapitre présentera diverses connaissances connexes.

Règles de résolution du chemin du module
Nous savons déjà que la fonction require prend en charge les chemins absolus commençant par une barre oblique (/) ou une lettre de lecteur (C:), et prend également en charge les chemins relatifs commençant par ./. Cependant, ces deux chemins établissent une forte relation de couplage entre les modules. Une fois que l'emplacement de stockage d'un fichier de module doit être modifié, le code des autres modules qui utilisent ce module doit également être ajusté en conséquence, ce qui devient un problème. Par conséquent, la fonction require prend en charge la troisième forme de chemin, écrite de la même manière que foo/bar, et analyse le chemin selon les règles suivantes jusqu'à ce que l'emplacement du module soit trouvé.

Modules intégrés

Si le nom passé à la fonction require est un nom de module intégré NodeJS, l'analyse du chemin ne sera pas effectuée et l'objet exporté du module interne sera renvoyé directement, comme require('fs').

répertoire node_modules

NodeJS définit un répertoire spécial node_modules pour stocker les modules. Par exemple, le chemin absolu d'un module est /home/user/hello.js Lorsque la méthode require('foo/bar') est utilisée pour charger le module dans le module, NodeJS essaiera d'utiliser les chemins suivants dans l'ordre. .

 /home/user/node_modules/foo/bar
 /home/node_modules/foo/bar
 /node_modules/foo/bar
Copier après la connexion

Variable d'environnement NODE_PATH

Semblable à la variable d'environnement PATH, NodeJS permet de spécifier des chemins de recherche de modules supplémentaires via la variable d'environnement NODE_PATH. La variable d'environnement NODE_PATH contient un ou plusieurs chemins de répertoires. Les chemins sont séparés par : sous Linux et sous Windows. Par exemple, la variable d'environnement NODE_PATH suivante est définie :

NODE_PATH=/home/user/lib:/home/lib
Lors de l'utilisation de require('foo/bar') pour charger un module, NodeJS essaie les chemins suivants dans l'ordre.

 /home/user/lib/foo/bar
 /home/lib/foo/bar

Copier après la connexion

Pack

Nous savons déjà que l'unité de base d'un module JS est un seul fichier JS, mais les modules plus complexes sont souvent composés de plusieurs sous-modules. Afin de faciliter la gestion et l'utilisation, nous pouvons appeler un gros module composé de plusieurs sous-modules un package, et mettre tous les sous-modules dans le même répertoire.

Parmi tous les sous-modules qui composent un package, il doit y avoir un module d'entrée, et l'objet d'exportation du module d'entrée est utilisé comme objet d'exportation du package. Par exemple, il existe la structure de répertoires suivante.

- /home/user/lib/
  - cat/
    head.js
    body.js
    main.js
Copier après la connexion

Le répertoire cat définit un package, qui contient 3 sous-modules. main.js sert de module d'entrée et son contenu est le suivant :

var head = require('./head');
var body = require('./body');

exports.create = function (name) {
  return {
    name: name,
    head: head.create(),
    body: body.create()
  };
};

Copier après la connexion

Lors de l'utilisation d'un package dans d'autres modules, vous devez charger le module d'entrée du package. En continuant avec l'exemple ci-dessus, l'utilisation de require('/home/user/lib/cat/main') peut atteindre l'objectif, mais cela ne semble pas être une bonne idée si le nom du module d'entrée apparaît dans le chemin. Nous devons donc faire un peu de travail supplémentaire pour que le package se comporte davantage comme un module unique.

index.js
Lorsque le nom de fichier du module est index.js, lors du chargement du module, vous pouvez utiliser le chemin du répertoire où se trouve le module au lieu du chemin du fichier du module. Par conséquent, en suivant l'exemple ci-dessus, les deux suivants. les déclarations sont équivalentes.

var cat = require('/home/user/lib/cat');
var cat = require('/home/user/lib/cat/index');
Copier après la connexion

Après un traitement de cette manière, il vous suffit de transmettre le chemin du répertoire du package à la fonction require. On a l'impression que le répertoire entier est utilisé comme un seul module, ce qui donne une impression plus holistique.

package.json
Si vous souhaitez personnaliser le nom de fichier et l'emplacement de stockage du module d'entrée, vous devez inclure un fichier package.json dans le répertoire du package et y spécifier le chemin du module d'entrée. Le module cat dans l'exemple ci-dessus peut être refactorisé comme suit.

- /home/user/lib/
  - cat/
    + doc/
    - lib/
      head.js
      body.js
      main.js
    + tests/
    package.json
Copier après la connexion

Le contenu de package.json est le suivant.

{
  "name": "cat",
  "main": "./lib/main.js"
}
Copier après la connexion

De cette façon, vous pouvez également utiliser require('/home/user/lib/cat') pour charger le module. NodeJS trouvera l'emplacement du module d'entrée en fonction de package.json dans le répertoire du package.

Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le module d'extension WLAN s'est arrêté [correctif] Le module d'extension WLAN s'est arrêté [correctif] Feb 19, 2024 pm 02:18 PM

S'il y a un problème avec le module d'extension WLAN sur votre ordinateur Windows, cela peut entraîner une déconnexion d'Internet. Cette situation est souvent frustrante, mais heureusement, cet article propose quelques suggestions simples qui peuvent vous aider à résoudre ce problème et à rétablir le bon fonctionnement de votre connexion sans fil. Réparer le module d'extensibilité WLAN s'est arrêté Si le module d'extensibilité WLAN a cessé de fonctionner sur votre ordinateur Windows, suivez ces suggestions pour le réparer : Exécutez l'utilitaire de résolution des problèmes réseau et Internet pour désactiver et réactiver les connexions réseau sans fil Redémarrez le service de configuration automatique WLAN Modifier les options d'alimentation Modifier Paramètres d'alimentation avancés Réinstaller le pilote de la carte réseau Exécuter certaines commandes réseau Examinons-le maintenant en détail

Le module d'extensibilité WLAN ne peut pas démarrer Le module d'extensibilité WLAN ne peut pas démarrer Feb 19, 2024 pm 05:09 PM

Cet article détaille les méthodes permettant de résoudre l'événement ID10000, qui indique que le module d'extension LAN sans fil ne peut pas démarrer. Cette erreur peut apparaître dans le journal des événements du PC Windows 11/10. Le module d'extensibilité WLAN est un composant de Windows qui permet aux fournisseurs de matériel indépendants (IHV) et aux fournisseurs de logiciels indépendants (ISV) de fournir aux utilisateurs des fonctionnalités de réseau sans fil personnalisées. Il étend les fonctionnalités des composants réseau Windows natifs en ajoutant la fonctionnalité par défaut de Windows. Le module d'extensibilité WLAN est démarré dans le cadre de l'initialisation lorsque le système d'exploitation charge les composants réseau. Si le module d'extension LAN sans fil rencontre un problème et ne peut pas démarrer, vous pouvez voir un message d'erreur dans le journal de l'Observateur d'événements.

Un article pour parler du contrôle de la mémoire dans Node Un article pour parler du contrôle de la mémoire dans Node Apr 26, 2023 pm 05:37 PM

Le service Node construit sur une base non bloquante et piloté par les événements présente l'avantage d'une faible consommation de mémoire et est très adapté à la gestion de requêtes réseau massives. Dans le contexte de demandes massives, les questions liées au « contrôle de la mémoire » doivent être prises en compte. 1. Le mécanisme de récupération de place du V8 et les limitations de mémoire Js sont contrôlés par la machine de récupération de place

Parlons en profondeur du module File dans Node Parlons en profondeur du module File dans Node Apr 24, 2023 pm 05:49 PM

Le module de fichiers est une encapsulation des opérations de fichiers sous-jacentes, telles que l'ajout de lecture/écriture/ouverture/fermeture/suppression de fichiers, etc. La plus grande caractéristique du module de fichiers est que toutes les méthodes fournissent deux versions de **synchrone** et ** asynchrone**, with Les méthodes avec le suffixe sync sont toutes des méthodes de synchronisation, et celles qui n'en ont pas sont toutes des méthodes hétérogènes.

Python bibliothèques standard couramment utilisées et bibliothèques tierces module 2-sys Python bibliothèques standard couramment utilisées et bibliothèques tierces module 2-sys Apr 10, 2023 pm 02:56 PM

1. Introduction au module sys Le module os présenté précédemment est principalement destiné au système d'exploitation, tandis que le module sys de cet article est principalement destiné à l'interpréteur Python. Le module sys est un module fourni avec Python. C'est une interface permettant d'interagir avec l'interpréteur Python. Le module sys fournit de nombreuses fonctions et variables pour gérer différentes parties de l'environnement d'exécution Python. 2. Méthodes couramment utilisées du module sys Vous pouvez vérifier quelles méthodes sont incluses dans le module sys via la méthode dir() : import sys print(dir(sys))1.sys.argv-get les paramètres de ligne de commande sys. argv est utilisé pour implémenter la commande depuis l'extérieur du programme. Le programme reçoit des paramètres et il est capable d'obtenir la colonne des paramètres de la ligne de commande.

Programmation Python : explication détaillée des points clés de l'utilisation de tuples nommés Programmation Python : explication détaillée des points clés de l'utilisation de tuples nommés Apr 11, 2023 pm 09:22 PM

Préface Cet article continue de présenter le module de collection Python. Cette fois, il y introduit principalement les tuples nommés, c'est-à-dire l'utilisation de nommétuple. Sans plus tarder, commençons – n'oubliez pas d'aimer, de suivre et de transmettre ~ ^_^Création de tuples nommés La classe de tuple nommé nomméeTuples dans la collection Python donne un sens à chaque position dans le tuple et améliore la lisibilité du code sexuel et descriptif. Ils peuvent être utilisés partout où des tuples réguliers sont utilisés et ajoutent la possibilité d'accéder aux champs par nom plutôt que par index de position. Il provient des collections de modules intégrés Python. La syntaxe générale utilisée est : importer des collections XxNamedT

Parlons de la boucle d'événements dans Node Parlons de la boucle d'événements dans Node Apr 11, 2023 pm 07:08 PM

La boucle d'événements est un élément fondamental de Node.js et permet une programmation asynchrone en garantissant que le thread principal n'est pas bloqué. Comprendre la boucle d'événements est crucial pour créer des applications efficaces. L'article suivant vous donnera une compréhension approfondie de la boucle d'événements dans Node. J'espère qu'il vous sera utile !

Comment utiliser DateTime en Python Comment utiliser DateTime en Python Apr 19, 2023 pm 11:55 PM

Toutes les données reçoivent automatiquement un « DOB » (Date de naissance) au début. Par conséquent, il est inévitable de rencontrer des données de date et d’heure lors du traitement des données à un moment donné. Ce didacticiel vous fera découvrir le module datetime en Python et l'utilisation de certaines bibliothèques périphériques telles que pandas et pytz. En Python, tout ce qui concerne la date et l'heure est géré par le module datetime, qui divise le module en 5 classes différentes. Les classes sont simplement des types de données qui correspondent à des objets. La figure suivante résume les 5 classes datetime en Python ainsi que les attributs et exemples couramment utilisés. 3 extraits utiles 1. Convertir la chaîne au format datetime, peut-être en utilisant datet

See all articles